コード例 #1
0
        public string Execute(ICharacter character, int?minutes = null)
        {
            if (character == null)
            {
                throw new Exception("The character name is not provided");
            }

            if (character == this.ExecutionContextCurrentCharacter)
            {
                throw new Exception("You cannot mute yourself");
            }

            if (minutes == null)
            {
                minutes = DefaultDuration;
            }

            if (minutes < 1)
            {
                throw new Exception($"Minutes must be in 1-{int.MaxValue} range");
            }

            ServerPlayerMuteSystem.Mute(character, minutes.Value);
            return(string.Format("{0} successfully muted on the server for {1}",
                                 character.Name,
                                 ClientTimeFormatHelper.FormatTimeDuration(minutes.Value * 60.0)));
        }
コード例 #2
0
        public string Execute()
        {
            var list = ServerPlayerMuteSystem.GetMuteList().ToList();

            if (list.Count == 0)
            {
                return("Mute list is empty");
            }

            return("Muted players:"
                   + Environment.NewLine
                   + list.GetJoinedString(Environment.NewLine));
        }
コード例 #3
0
            public static InvitationCreateResult AddInvitation(ICharacter invitee, ICharacter inviter)
            {
                var party = ServerGetParty(inviter);

                if (party == null)
                {
                    Logger.Warning("Player don't have a party and so cannot invite anyone", inviter);
                    return(InvitationCreateResult.Unknown);
                }

                if (ServerPlayerMuteSystem.IsMuted(invitee.Name, out _))
                {
                    return(InvitationCreateResult.ErrorMuted);
                }

                var invitation = GetInvitation(party, invitee);

                if (invitation != null)
                {
                    invitation.ResetExpirationDate();
                    Logger.Info(
                        $"{invitee} is already has been invited by {inviter} to {party} - invitation timeout extended");
                    return(InvitationCreateResult.Success);
                }

                var members = ServerGetPartyMembersReadOnly(party);

                if (members.Contains(invitee.Name, StringComparer.Ordinal))
                {
                    return(InvitationCreateResult.ErrorInviteeAlreadySamePartyMember);
                }

                var partyMembers = ServerGetPartyMembersReadOnly(party);

                if (partyMembers.Count + 1 >= PartyConstants.PartyMembersMax)
                {
                    return(InvitationCreateResult.ErrorPartyFull);
                }

                invitation = new Invitation(party, inviter, invitee);
                InvitationsList.Add(invitation);

                Instance.CallClient(invitation.Invitee,
                                    _ => _.ClientRemote_InvitationAdded(invitation.Inviter.Name));
                Logger.Important($"{invitee} has been invited by {inviter} to {party}");
                ChatSystem.ServerSendServiceMessage(
                    ServerGetPartyChat(party),
                    string.Format(Notification_PlayerInvitedFormat, inviter.Name, invitee.Name));

                return(InvitationCreateResult.Success);
            }
コード例 #4
0
        public string Execute(
            [CustomSuggestions(nameof(GetCharacterNameSuggestions))]
            string playerName)
        {
            var character = Server.Characters.GetPlayerCharacter(playerName);

            if (character == null)
            {
                throw new Exception("The character name is not provided");
            }

            if (ServerPlayerMuteSystem.Unmute(character))
            {
                return($"{character.Name} successfully un-muted");
            }

            return($"{character.Name} was not muted so no changes are done");
        }
コード例 #5
0
 private static IEnumerable <string> GetCharacterNameSuggestions(string startsWith)
 {
     return(ServerPlayerMuteSystem.GetMuteList());
 }