Through DB you can now disable password changing by non-gm's simply by changing m_public to 0. Make channels public by default.
--HG-- branch : trunk
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE channels ADD COLUMN m_public tinyint(1) NOT NULL DEFAULT 1 AFTER m_moderate;
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
INSERT INTO trinity_string (entry, content_default) VALUES (5022, "Channel password not changed due to channel being marked public. GM Powers required.");
|
||||||
+15
-5
@@ -53,7 +53,7 @@ Channel::Channel(const std::string& name, uint32 channel_id, uint32 Team)
|
|||||||
//load not built in channel if saved
|
//load not built in channel if saved
|
||||||
std::string _name(name);
|
std::string _name(name);
|
||||||
CharacterDatabase.escape_string(_name);
|
CharacterDatabase.escape_string(_name);
|
||||||
QueryResult_AutoPtr result = CharacterDatabase.PQuery("SELECT m_name, m_team, m_announce, m_moderate, m_password, BannedList FROM channels WHERE m_name = '%s' AND m_team = '%u'", _name.c_str(), m_Team);
|
QueryResult_AutoPtr result = CharacterDatabase.PQuery("SELECT m_name, m_team, m_announce, m_moderate, m_public, m_password, BannedList FROM channels WHERE m_name = '%s' AND m_team = '%u'", _name.c_str(), m_Team);
|
||||||
if (result)//load
|
if (result)//load
|
||||||
{
|
{
|
||||||
Field *fields = result->Fetch();
|
Field *fields = result->Fetch();
|
||||||
@@ -61,8 +61,9 @@ Channel::Channel(const std::string& name, uint32 channel_id, uint32 Team)
|
|||||||
uint32 db_team = fields[1].GetUInt32();
|
uint32 db_team = fields[1].GetUInt32();
|
||||||
m_announce = fields[2].GetBool();
|
m_announce = fields[2].GetBool();
|
||||||
m_moderate = fields[3].GetBool();
|
m_moderate = fields[3].GetBool();
|
||||||
m_password = fields[4].GetString();
|
m_public = fields[4].GetBool();
|
||||||
const char* db_BannedList = fields[5].GetString();
|
m_password = fields[5].GetString();
|
||||||
|
const char* db_BannedList = fields[6].GetString();
|
||||||
|
|
||||||
m_IsSaved = true;
|
m_IsSaved = true;
|
||||||
|
|
||||||
@@ -84,8 +85,8 @@ Channel::Channel(const std::string& name, uint32 channel_id, uint32 Team)
|
|||||||
else // save
|
else // save
|
||||||
{
|
{
|
||||||
// _name is already escaped at this point.
|
// _name is already escaped at this point.
|
||||||
if (CharacterDatabase.PExecute("INSERT INTO channels (m_name, m_team, m_announce, m_moderate, m_password) "
|
if (CharacterDatabase.PExecute("INSERT INTO channels (m_name, m_team, m_announce, m_moderate, m_public, m_password) "
|
||||||
"VALUES ('%s', '%u', '1', '0', '')", _name.c_str(), m_Team))
|
"VALUES ('%s', '%u', '1', '0', '1', '')", _name.c_str(), m_Team))
|
||||||
{
|
{
|
||||||
sLog.outDebug("New Channel(%s) saved", name.c_str());
|
sLog.outDebug("New Channel(%s) saved", name.c_str());
|
||||||
m_IsSaved = true;
|
m_IsSaved = true;
|
||||||
@@ -360,11 +361,20 @@ void Channel::UnBan(uint64 good, const char *badname)
|
|||||||
|
|
||||||
void Channel::Password(uint64 p, const char *pass)
|
void Channel::Password(uint64 p, const char *pass)
|
||||||
{
|
{
|
||||||
|
std::string plName;
|
||||||
uint32 sec = 0;
|
uint32 sec = 0;
|
||||||
Player *plr = objmgr.GetPlayer(p);
|
Player *plr = objmgr.GetPlayer(p);
|
||||||
if(plr)
|
if(plr)
|
||||||
sec = plr->GetSession()->GetSecurity();
|
sec = plr->GetSession()->GetSecurity();
|
||||||
|
|
||||||
|
if(!m_public && sec <= SEC_MODERATOR)
|
||||||
|
{
|
||||||
|
plName = plr->GetName();
|
||||||
|
normalizePlayerName(plName);
|
||||||
|
PSendSysMessage(LANG_CHANNEL_NOT_PUBLIC, plName.c_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(!IsOn(p))
|
if(!IsOn(p))
|
||||||
{
|
{
|
||||||
WorldPacket data;
|
WorldPacket data;
|
||||||
|
|||||||
@@ -153,6 +153,7 @@ class Channel
|
|||||||
BannedList banned;
|
BannedList banned;
|
||||||
bool m_announce;
|
bool m_announce;
|
||||||
bool m_moderate;
|
bool m_moderate;
|
||||||
|
bool m_public;
|
||||||
std::string m_name;
|
std::string m_name;
|
||||||
std::string m_password;
|
std::string m_password;
|
||||||
uint8 m_flags;
|
uint8 m_flags;
|
||||||
|
|||||||
+2
-1
@@ -877,7 +877,8 @@ enum TrinityStrings
|
|||||||
LANG_MOUNTABLE = 5019,
|
LANG_MOUNTABLE = 5019,
|
||||||
LANG_NPCINFO_PHASEMASK = 5020,
|
LANG_NPCINFO_PHASEMASK = 5020,
|
||||||
LANG_NPCINFO_ARMOR = 5021,
|
LANG_NPCINFO_ARMOR = 5021,
|
||||||
// Room for more Trinity strings 5022-9999
|
LANG_CHANNEL_NOT_PUBLIC = 5022,
|
||||||
|
// Room for more Trinity strings 5023-9999
|
||||||
// Used for GM Announcements
|
// Used for GM Announcements
|
||||||
LANG_GM_BROADCAST = 6613,
|
LANG_GM_BROADCAST = 6613,
|
||||||
LANG_GM_NOTIFY = 6614,
|
LANG_GM_NOTIFY = 6614,
|
||||||
|
|||||||
@@ -8587,7 +8587,7 @@ bool ObjectMgr::IsVendorItemValid( uint32 vendor_entry, uint32 item_id, int32 ma
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(vItems->GetItemCount() > MAX_VENDOR_ITEMS)
|
if(vItems->GetItemCount() >= MAX_VENDOR_ITEMS)
|
||||||
{
|
{
|
||||||
if(pl)
|
if(pl)
|
||||||
ChatHandler(pl).SendSysMessage(LANG_COMMAND_ADDVENDORITEMITEMS);
|
ChatHandler(pl).SendSysMessage(LANG_COMMAND_ADDVENDORITEMITEMS);
|
||||||
|
|||||||
Reference in New Issue
Block a user