private void KickCommand(IDictionary <string, object> command) { var kicker = command.Get("operator"); var channelId = command.Get(Constants.Arguments.Channel); var kicked = command.Get(Constants.Arguments.Character); var isBan = command.Get(Constants.Arguments.Command) == Constants.ServerCommands.ChannelBan; GeneralChannelModel channel; lock (chatStateLocker) channel = ChatModel.CurrentChannels.FirstByIdOrNull(channelId); if (channel == null) { RequeueCommand(command); return; } if (ChatModel.CurrentCharacter.NameEquals(kicked)) { kicked = "you"; } var args = new ChannelDisciplineEventArgs { IsBan = isBan, Kicked = kicked, Kicker = kicker }; var update = new ChannelUpdateModel(channel, args); if (kicked == "you") { channels.RemoveChannel(channelId); } else { channel.CharacterManager.SignOff(kicked); } if (isBan) { channel.CharacterManager.Add(kicked, ListKind.Banned); } Events.NewUpdate(update); }
private void KickCommand(IDictionary<string, object> command) { var kicker = command.Get("operator"); var channelId = command.Get(Constants.Arguments.Channel); var kicked = command.Get(Constants.Arguments.Character); var isBan = command.Get(Constants.Arguments.Command) == Constants.ServerCommands.ChannelBan; GeneralChannelModel channel; lock (chatStateLocker) channel = ChatModel.CurrentChannels.FirstByIdOrNull(channelId); if (channel == null) { RequeueCommand(command); return; } if (ChatModel.CurrentCharacter.NameEquals(kicked)) kicked = "you"; var args = new ChannelDisciplineEventArgs { IsBan = isBan, Kicked = kicked, Kicker = kicker }; var update = new ChannelUpdateModel(channel, args); if (kicked == "you") channels.RemoveChannel(channelId); else channel.CharacterManager.SignOff(kicked); if (isBan) { channel.CharacterManager.Add(kicked, ListKind.Banned); } Events.NewUpdate(update); }