mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[8733] Access to chat channels by case-insensitive channel names.
But remember original case of name.
This commit is contained in:
parent
04911535ea
commit
9746a97174
3 changed files with 21 additions and 8 deletions
|
|
@ -46,18 +46,27 @@ ChannelMgr::~ChannelMgr()
|
|||
|
||||
Channel *ChannelMgr::GetJoinChannel(std::string name, uint32 channel_id)
|
||||
{
|
||||
if (channels.find(name) == channels.end())
|
||||
std::wstring wname;
|
||||
Utf8toWStr(name,wname);
|
||||
wstrToLower(wname);
|
||||
|
||||
if (channels.find(wname) == channels.end())
|
||||
{
|
||||
Channel *nchan = new Channel(name,channel_id);
|
||||
channels[name] = nchan;
|
||||
channels[wname] = nchan;
|
||||
return nchan;
|
||||
}
|
||||
|
||||
return channels[name];
|
||||
return channels[wname];
|
||||
}
|
||||
|
||||
Channel *ChannelMgr::GetChannel(std::string name, Player *p, bool pkt)
|
||||
{
|
||||
ChannelMap::const_iterator i = channels.find(name);
|
||||
std::wstring wname;
|
||||
Utf8toWStr(name,wname);
|
||||
wstrToLower(wname);
|
||||
|
||||
ChannelMap::const_iterator i = channels.find(wname);
|
||||
|
||||
if(i == channels.end())
|
||||
{
|
||||
|
|
@ -76,7 +85,11 @@ Channel *ChannelMgr::GetChannel(std::string name, Player *p, bool pkt)
|
|||
|
||||
void ChannelMgr::LeftChannel(std::string name)
|
||||
{
|
||||
ChannelMap::const_iterator i = channels.find(name);
|
||||
std::wstring wname;
|
||||
Utf8toWStr(name,wname);
|
||||
wstrToLower(wname);
|
||||
|
||||
ChannelMap::const_iterator i = channels.find(wname);
|
||||
|
||||
if(i == channels.end())
|
||||
return;
|
||||
|
|
@ -85,7 +98,7 @@ void ChannelMgr::LeftChannel(std::string name)
|
|||
|
||||
if(channel->GetNumPlayers() == 0 && !channel->IsConstant())
|
||||
{
|
||||
channels.erase(name);
|
||||
channels.erase(wname);
|
||||
delete channel;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
class ChannelMgr
|
||||
{
|
||||
public:
|
||||
typedef std::map<std::string,Channel *> ChannelMap;
|
||||
typedef std::map<std::wstring,Channel*> ChannelMap;
|
||||
ChannelMgr() {}
|
||||
~ChannelMgr();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "8732"
|
||||
#define REVISION_NR "8733"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue