public static ChatChannel GetChannel(Player player, ushort channelId) { switch (channelId) { case Constants.ChatChannelGuild: //Guild* guild = player.getGuild(); //TODO: GUILD //if (guild) { // auto it = guildChannels.find(guild->getId()); // if (it != guildChannels.end()) { // return it->second; // } //} break; case Constants.ChatChannelParty: //Party* party = player.getParty(); //TODO: PARTY //if (party) { // auto it = partyChannels.find(party); // if (it != partyChannels.end()) { // return it->second; // } //} break; default: ChatChannel channel; if (NormalChannels.TryGetValue(channelId, out channel)) { if (!channel.CanJoin(player)) { return(null); } return(channel); } PrivateChatChannel pChannel; if (PrivateChannels.TryGetValue(channelId, out pChannel)) { if (pChannel.IsInvited(player.CharacterId)) { return(pChannel); } } break; } return(null); }
public static bool DeleteChannel(Player player, ushort channelId) { switch (channelId) { case Constants.ChatChannelGuild: //Guild* guild = player.getGuild(); //TODO: GUILD //if (!guild) { // return false; //} //auto it = guildChannels.find(guild->getId()); //if (it == guildChannels.end()) { // return false; //} //delete it->second; //guildChannels.erase(it); break; case Constants.ChatChannelParty: //Party* party = player.getParty(); //TODO: PARTY //if (!party) { // return false; //} //auto it = partyChannels.find(party); //if (it == partyChannels.end()) { // return false; //} //delete it->second; //partyChannels.erase(it); break; default: PrivateChatChannel channel; if (!PrivateChannels.TryGetValue(channelId, out channel)) { return(false); } channel.CloseChannel(); return(PrivateChannels.Remove(channelId)); } return(true); }