Exemplo n.º 1
0
        public void CreateGroup(Client sender, int bossId, GroupType type, string name, string tag, string hexColor)
        {
            if (!sender.HasRank(ServerRank.AdministratorRozgrywki2))
            {
                sender.SendWarning("Nie posiadasz uprawnień do tworzenia grupy.");
                return;
            }

            name = name.Replace('_', ' ');

            Color color;

            try
            {
                color = hexColor.ToColor();
            }
            catch (ColorConvertException)
            {
                sender.SendError("Wprowadzony kolor jest nieprawidłowy.");
                return;
            }

            if (EntityHelper.GetAccountByServerId(bossId) != null)
            {
                AccountEntity boss = EntityHelper.GetAccountByServerId(bossId);

                if (boss.CharacterEntity.DbModel.Workers.Count < 3)
                {
                    GroupEntity group = GroupEntity.Create(name, tag, type, color);
                    group.AddWorker(new WorkerModel
                    {
                        Group       = group.DbModel,
                        Character   = boss.CharacterEntity.DbModel,
                        Rights      = GroupRights.AllBasic,
                        DutyMinutes = 0,
                        Salary      = 0
                    });
                    group.Save();
                    sender.SendInfo($"Stworzyłeś grupę {group.GetColoredName()}.");
                }
                else
                {
                    boss.Client.SendError("Nie posiadasz wolnych slotów grupowych.");
                    if (boss.Client != sender)
                    {
                        sender.SendError(
                            $"Gracz: {boss.Client.Name} nie posiada wolnych slotów grupowych.");
                    }
                }
            }
            else
            {
                sender.SendError("Nie znaleziono gracza o podanym Id.");
            }
        }
Exemplo n.º 2
0
        public void JoinGroup(Client sender, long groupId)
        {
            if (!sender.HasRank(ServerRank.AdministratorRozgrywki2))
            {
                sender.SendError("Nie posiadasz uprawnień do ustawienia wchodzenia do grupy.");
                return;
            }

            if (EntityHelper.GetGroup(groupId) != null)
            {
                AccountEntity player = sender.GetAccountEntity();

                GroupEntity group = EntityHelper.GetGroup(groupId);

                if (group.GetWorkers().Any(p => p.Character == player.CharacterEntity.DbModel))
                {
                    sender.SendError("Jesteś już w tej grupie.");
                    return;
                }

                if (player.CharacterEntity.DbModel.Workers.Count < 3)
                {
                    group.AddWorker(new WorkerModel
                    {
                        Group       = group.DbModel,
                        Character   = sender.GetAccountEntity().CharacterEntity.DbModel,
                        Rights      = GroupRights.AllBasic,
                        DutyMinutes = 0,
                        Salary      = 0
                    });
                    group.Save();

                    sender.SendInfo($"Wszedłeś do grupy {group.GetColoredName()}.");
                }
                else
                {
                    sender.SendError("Nie posiadasz wolnych slotów grupowych.");
                }
            }
            else
            {
                sender.SendError("Nie znaleziono grupy o podanym Id.");
            }
        }