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))); }
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)); }
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); }
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"); }
private static IEnumerable <string> GetCharacterNameSuggestions(string startsWith) { return(ServerPlayerMuteSystem.GetMuteList()); }