mirror of
https://github.com/mangosfour/server.git
synced 2025-12-18 19:37:01 +00:00
Make Mangos compatible with newer MySQL pt3. Based by work by @leprasmurf
This commit is contained in:
parent
859a25abfa
commit
ea642ee5cf
16 changed files with 110 additions and 103 deletions
|
|
@ -818,7 +818,7 @@ void Guild::CreateRank(std::string name_, uint32 rights)
|
|||
for (uint32 i = 0; i < uint32(GetPurchasedTabs()); ++i)
|
||||
{
|
||||
// create bank rights with 0
|
||||
CharacterDatabase.PExecute("INSERT INTO guild_bank_right (guildid,TabId,rid) VALUES ('%u','%u','%u')", m_Id, i, new_rank_id);
|
||||
CharacterDatabase.PExecute("INSERT INTO `guild_bank_right` (`guildid`,`TabId`,`rid`) VALUES ('%u','%u','%u')", m_Id, i, new_rank_id);
|
||||
}
|
||||
// name now can be used for encoding to DB
|
||||
CharacterDatabase.escape_string(name_);
|
||||
|
|
@ -1474,8 +1474,8 @@ void Guild::CreateNewBankTab()
|
|||
m_TabListMap.push_back(new GuildBankTab);
|
||||
|
||||
CharacterDatabase.BeginTransaction();
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_bank_tab WHERE guildid='%u' AND TabId='%u'", m_Id, tabId);
|
||||
CharacterDatabase.PExecute("INSERT INTO guild_bank_tab (guildid,TabId) VALUES ('%u','%u')", m_Id, tabId);
|
||||
CharacterDatabase.PExecute("DELETE FROM `guild_bank_tab` WHERE `guildid`='%u' AND `TabId`='%u'", m_Id, tabId);
|
||||
CharacterDatabase.PExecute("INSERT INTO `guild_bank_tab` (`guildid`,`TabId`) VALUES ('%u','%u')", m_Id, tabId);
|
||||
CharacterDatabase.CommitTransaction();
|
||||
}
|
||||
|
||||
|
|
@ -1491,7 +1491,7 @@ void Guild::SetGuildBankTabInfo(uint8 TabId, std::string Name, std::string Icon)
|
|||
|
||||
CharacterDatabase.escape_string(Name);
|
||||
CharacterDatabase.escape_string(Icon);
|
||||
CharacterDatabase.PExecute("UPDATE guild_bank_tab SET TabName='%s',TabIcon='%s' WHERE guildid='%u' AND TabId='%u'", Name.c_str(), Icon.c_str(), m_Id, uint32(TabId));
|
||||
CharacterDatabase.PExecute("UPDATE `guild_bank_tab` SET `TabName`='%s',`TabIcon`='%s' WHERE `guildid`='%u' AND `TabId`='%u'", Name.c_str(), Icon.c_str(), m_Id, uint32(TabId));
|
||||
}
|
||||
|
||||
uint32 Guild::GetBankRights(uint32 rankId, uint8 TabId) const
|
||||
|
|
@ -1510,8 +1510,8 @@ uint32 Guild::GetBankRights(uint32 rankId, uint8 TabId) const
|
|||
// This load should be called on startup only
|
||||
void Guild::LoadGuildBankFromDB()
|
||||
{
|
||||
// 0 1 2 3
|
||||
QueryResult* result = CharacterDatabase.PQuery("SELECT TabId, TabName, TabIcon, TabText FROM guild_bank_tab WHERE guildid='%u' ORDER BY TabId", m_Id);
|
||||
// 0 1 2 3
|
||||
QueryResult* result = CharacterDatabase.PQuery("SELECT `TabId`, `TabName`, `TabIcon`, `TabText` FROM `guild_bank_tab` WHERE `guildid`='%u' ORDER BY `TabId`", m_Id);
|
||||
if (!result)
|
||||
{
|
||||
m_TabListMap.clear();
|
||||
|
|
@ -1542,7 +1542,7 @@ void Guild::LoadGuildBankFromDB()
|
|||
|
||||
// data needs to be at first place for Item::LoadFromDB
|
||||
// 0 1 2 3 4 5
|
||||
result = CharacterDatabase.PQuery("SELECT data, text, TabId, SlotId, item_guid, item_entry FROM guild_bank_item JOIN item_instance ON item_guid = guid WHERE guildid='%u' ORDER BY TabId", m_Id);
|
||||
result = CharacterDatabase.PQuery("SELECT `data`, `text`, `TabId`, `SlotId`, `item_guid`, `item_entry` FROM `guild_bank_item` JOIN `item_instance` ON `item_guid` = `guid` WHERE `guildid`='%u' ORDER BY `TabId`", m_Id);
|
||||
if (!result)
|
||||
{
|
||||
return;
|
||||
|
|
@ -1579,7 +1579,7 @@ void Guild::LoadGuildBankFromDB()
|
|||
Item* pItem = NewItemOrBag(proto);
|
||||
if (!pItem->LoadFromDB(ItemGuid, fields))
|
||||
{
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_bank_item WHERE guildid='%u' AND TabId='%u' AND SlotId='%u'", m_Id, uint32(TabId), uint32(SlotId));
|
||||
CharacterDatabase.PExecute("DELETE FROM `guild_bank_item` WHERE `guildid`='%u' AND `TabId`='%u' AND `SlotId`='%u'", m_Id, uint32(TabId), uint32(SlotId));
|
||||
sLog.outError("Item GUID %u not found in item_instance, deleting from Guild Bank!", ItemGuid);
|
||||
delete pItem;
|
||||
continue;
|
||||
|
|
@ -1623,7 +1623,7 @@ bool Guild::MemberMoneyWithdraw(uint64 amount, uint32 LowGuid)
|
|||
return false;
|
||||
}
|
||||
itr->second.BankRemMoney -= amount;
|
||||
CharacterDatabase.PExecute("UPDATE guild_member SET BankRemMoney='%u' WHERE guildid='%u' AND guid='%u'",
|
||||
CharacterDatabase.PExecute("UPDATE `guild_member` SET `BankRemMoney`='%u' WHERE `guildid`='%u' AND `guid`='%u'",
|
||||
itr->second.BankRemMoney, m_Id, LowGuid);
|
||||
}
|
||||
|
||||
|
|
@ -1641,7 +1641,7 @@ void Guild::SetBankMoney(int64 money)
|
|||
money = 0;
|
||||
m_GuildBankMoney = money;
|
||||
|
||||
CharacterDatabase.PExecute("UPDATE guild SET BankMoney='" UI64FMTD "' WHERE guildid='%u'", money, m_Id);
|
||||
CharacterDatabase.PExecute("UPDATE `guild` SET `BankMoney`='" UI64FMTD "' WHERE `guildid`='%u'", money, m_Id);
|
||||
}
|
||||
|
||||
// *************************************************
|
||||
|
|
@ -1664,7 +1664,7 @@ bool Guild::MemberItemWithdraw(uint8 TabId, uint32 LowGuid)
|
|||
return false;
|
||||
}
|
||||
--itr->second.BankRemSlotsTab[TabId];
|
||||
CharacterDatabase.PExecute("UPDATE guild_member SET BankRemSlotsTab%u='%u' WHERE guildid='%u' AND guid='%u'",
|
||||
CharacterDatabase.PExecute("UPDATE `guild_member` SET `BankRemSlotsTab%u`='%u' WHERE `guildid`='%u' AND `guid`='%u'",
|
||||
uint32(TabId), itr->second.BankRemSlotsTab[TabId], m_Id, LowGuid);
|
||||
}
|
||||
return true;
|
||||
|
|
@ -1761,8 +1761,8 @@ void Guild::SetBankMoneyPerDay(uint32 rankId, uint32 money)
|
|||
member.BankResetTimeMoney = 0;
|
||||
}
|
||||
|
||||
CharacterDatabase.PExecute("UPDATE guild_rank SET BankMoneyPerDay='%u' WHERE rid='%u' AND guildid='%u'", money, rankId, m_Id);
|
||||
CharacterDatabase.PExecute("UPDATE guild_member SET BankResetTimeMoney='0' WHERE guildid='%u' AND rank='%u'", m_Id, rankId);
|
||||
CharacterDatabase.PExecute("UPDATE `guild_rank` SET `BankMoneyPerDay`='%u' WHERE `rid`='%u' AND `guildid`='%u'", money, rankId, m_Id);
|
||||
CharacterDatabase.PExecute("UPDATE `guild_member` SET `BankResetTimeMoney`='0' WHERE `guildid`='%u' AND `rank`='%u'", m_Id, rankId);
|
||||
}
|
||||
|
||||
void Guild::SetBankRightsAndSlots(uint32 rankId, uint8 TabId, uint32 right, uint32 nbSlots, bool db)
|
||||
|
|
@ -1770,7 +1770,7 @@ void Guild::SetBankRightsAndSlots(uint32 rankId, uint8 TabId, uint32 right, uint
|
|||
if (rankId >= m_Ranks.size() || TabId >= GetPurchasedTabs())
|
||||
{
|
||||
// TODO remove next line, It is there just to repair existing bug in deleting guild rank
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_bank_right WHERE guildid='%u' AND rid='%u' AND TabId='%u'", m_Id, rankId, TabId);
|
||||
CharacterDatabase.PExecute("DELETE FROM `guild_bank_right` WHERE `guildid`='%u' AND `rid`='%u' AND `TabId`='%u'", m_Id, rankId, TabId);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1792,10 +1792,10 @@ void Guild::SetBankRightsAndSlots(uint32 rankId, uint8 TabId, uint32 right, uint
|
|||
itr->second.BankResetTimeTab[i] = 0;
|
||||
}
|
||||
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_bank_right WHERE guildid='%u' AND TabId='%u' AND rid='%u'", m_Id, uint32(TabId), rankId);
|
||||
CharacterDatabase.PExecute("INSERT INTO guild_bank_right (guildid,TabId,rid,gbright,SlotPerDay) VALUES "
|
||||
CharacterDatabase.PExecute("DELETE FROM `guild_bank_right` WHERE `guildid`='%u' AND `TabId`='%u' AND `rid`='%u'", m_Id, uint32(TabId), rankId);
|
||||
CharacterDatabase.PExecute("INSERT INTO `guild_bank_right` (`guildid`,`TabId`,`rid`,`gbright`,`SlotPerDay`) VALUES "
|
||||
"('%u','%u','%u','%u','%u')", m_Id, uint32(TabId), rankId, m_Ranks[rankId].TabRight[TabId], m_Ranks[rankId].TabSlotPerDay[TabId]);
|
||||
CharacterDatabase.PExecute("UPDATE guild_member SET BankResetTimeTab%u='0' WHERE guildid='%u' AND rank='%u'", uint32(TabId), m_Id, rankId);
|
||||
CharacterDatabase.PExecute("UPDATE `guild_member` SET `BankResetTimeTab%u`='0' WHERE `guildid`='%u' AND `rank`='%u'", uint32(TabId), m_Id, rankId);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1848,7 +1848,7 @@ bool Guild::LoadBankRightsFromDB(QueryResult* guildBankTabRightsResult)
|
|||
{
|
||||
// there is in table guild_bank_right record which doesn't have guildid in guild table, report error
|
||||
sLog.outErrorDb("Guild %u does not exist but it has a record in guild_bank_right table, deleting it!", guildId);
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_bank_right WHERE guildid = '%u'", guildId);
|
||||
CharacterDatabase.PExecute("DELETE FROM `guild_bank_right` WHERE `guildid` = '%u'", guildId);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -1878,8 +1878,8 @@ void Guild::LoadGuildBankEventLogFromDB()
|
|||
// cycle through all purchased guild bank item tabs
|
||||
for (uint32 tabId = 0; tabId < uint32(GetPurchasedTabs()); ++tabId)
|
||||
{
|
||||
// 0 1 2 3 4 5 6
|
||||
QueryResult* result = CharacterDatabase.PQuery("SELECT LogGuid, EventType, PlayerGuid, ItemOrMoney, ItemStackCount, DestTabId, TimeStamp FROM guild_bank_eventlog WHERE guildid='%u' AND TabId='%u' ORDER BY TimeStamp DESC,LogGuid DESC LIMIT %u", m_Id, tabId, GUILD_BANK_MAX_LOGS);
|
||||
// 0 1 2 3 4 5 6
|
||||
QueryResult* result = CharacterDatabase.PQuery("SELECT `LogGuid`, `EventType`, `PlayerGuid`, `ItemOrMoney`, `ItemStackCount`, `DestTabId`, `TimeStamp` FROM `guild_bank_eventlog` WHERE `guildid`='%u' AND `TabId`='%u' ORDER BY `TimeStamp` DESC,`LogGuid` DESC LIMIT %u", m_Id, tabId, GUILD_BANK_MAX_LOGS);
|
||||
if (!result)
|
||||
continue;
|
||||
|
||||
|
|
@ -1900,7 +1900,7 @@ void Guild::LoadGuildBankEventLogFromDB()
|
|||
if (NewEvent.isMoneyEvent())
|
||||
{
|
||||
uint32 logGuid = fields[0].GetUInt32();
|
||||
CharacterDatabase.PExecute("UPDATE guild_bank_eventlog SET TabId='%u' WHERE guildid='%u' AND TabId='%u' AND LogGuid='%u'", GUILD_BANK_MONEY_LOGS_TAB, m_Id, tabId, logGuid);
|
||||
CharacterDatabase.PExecute("UPDATE `guild_bank_eventlog` SET `TabId`='%u' WHERE `guildid`='%u' AND `TabId`='%u' AND `LogGuid`='%u'", GUILD_BANK_MONEY_LOGS_TAB, m_Id, tabId, logGuid);
|
||||
sLog.outError("GuildBankEventLog ERROR: MoneyEvent LogGuid %u for Guild %u had incorrectly set its TabId to %u, correcting it to %u TabId", logGuid, m_Id, tabId, GUILD_BANK_MONEY_LOGS_TAB);
|
||||
continue;
|
||||
}
|
||||
|
|
@ -1921,8 +1921,8 @@ void Guild::LoadGuildBankEventLogFromDB()
|
|||
}
|
||||
|
||||
// special handle for guild bank money log
|
||||
// 0 1 2 3 4 5 6
|
||||
QueryResult* result = CharacterDatabase.PQuery("SELECT LogGuid, EventType, PlayerGuid, ItemOrMoney, ItemStackCount, DestTabId, TimeStamp FROM guild_bank_eventlog WHERE guildid='%u' AND TabId='%u' ORDER BY TimeStamp DESC,LogGuid DESC LIMIT %u", m_Id, GUILD_BANK_MONEY_LOGS_TAB, GUILD_BANK_MAX_LOGS);
|
||||
// 0 1 2 3 4 5 6
|
||||
QueryResult* result = CharacterDatabase.PQuery("SELECT `LogGuid`, `EventType`, `PlayerGuid`, `ItemOrMoney`, `ItemStackCount`, `DestTabId`, `TimeStamp` FROM `guild_bank_eventlog` WHERE `guildid`='%u' AND `TabId`='%u' ORDER BY `TimeStamp` DESC,`LogGuid` DESC LIMIT %u", m_Id, GUILD_BANK_MONEY_LOGS_TAB, GUILD_BANK_MAX_LOGS);
|
||||
if (!result)
|
||||
{
|
||||
return;
|
||||
|
|
@ -2044,16 +2044,16 @@ void Guild::LogBankEvent(uint8 EventType, uint8 TabId, uint32 PlayerGuidLow, uin
|
|||
#endif
|
||||
|
||||
// save event to database
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_bank_eventlog WHERE guildid='%u' AND LogGuid='%u' AND TabId='%u'", m_Id, currentLogGuid, currentTabId);
|
||||
CharacterDatabase.PExecute("DELETE FROM `guild_bank_eventlog` WHERE `guildid`='%u' AND `LogGuid`='%u' AND `TabId`='%u'", m_Id, currentLogGuid, currentTabId);
|
||||
|
||||
CharacterDatabase.PExecute("INSERT INTO guild_bank_eventlog (guildid,LogGuid,TabId,EventType,PlayerGuid,ItemOrMoney,ItemStackCount,DestTabId,TimeStamp) VALUES ('%u','%u','%u','%u','%u','%u','%u','%u','" UI64FMTD "')",
|
||||
CharacterDatabase.PExecute("INSERT INTO `guild_bank_eventlog` (`guildid`,`LogGuid`,`TabId`,`EventType`,`PlayerGuid`,`ItemOrMoney`,`ItemStackCount`,`DestTabId`,`TimeStamp`) VALUES ('%u','%u','%u','%u','%u','%u','%u','%u','" UI64FMTD "')",
|
||||
m_Id, currentLogGuid, currentTabId, uint32(NewEvent.EventType), NewEvent.PlayerGuid, NewEvent.ItemOrMoney, uint32(NewEvent.ItemStackCount), uint32(NewEvent.DestTabId), NewEvent.TimeStamp);
|
||||
}
|
||||
|
||||
bool Guild::AddGBankItemToDB(uint32 GuildId, uint32 BankTab , uint32 BankTabSlot , uint32 GUIDLow, uint32 Entry)
|
||||
{
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_bank_item WHERE guildid = '%u' AND TabId = '%u'AND SlotId = '%u'", GuildId, BankTab, BankTabSlot);
|
||||
CharacterDatabase.PExecute("INSERT INTO guild_bank_item (guildid,TabId,SlotId,item_guid,item_entry) "
|
||||
CharacterDatabase.PExecute("DELETE FROM `guild_bank_item` WHERE `guildid` = '%u' AND `TabId` = '%u'AND `SlotId` = '%u'", GuildId, BankTab, BankTabSlot);
|
||||
CharacterDatabase.PExecute("INSERT INTO `guild_bank_item` (`guildid`,`TabId`,`SlotId`,`item_guid`,`item_entry`) "
|
||||
"VALUES ('%u', '%u', '%u', '%u', '%u')", GuildId, BankTab, BankTabSlot, GUIDLow, Entry);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -2174,7 +2174,7 @@ Item* Guild::_StoreItem(uint8 tab, uint8 slot, Item* pItem, uint32 count, bool c
|
|||
void Guild::RemoveItem(uint8 tab, uint8 slot)
|
||||
{
|
||||
m_TabListMap[tab]->Slots[slot] = NULL;
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_bank_item WHERE guildid='%u' AND TabId='%u' AND SlotId='%u'",
|
||||
CharacterDatabase.PExecute("DELETE FROM `guild_bank_item` WHERE `guildid`='%u' AND `TabId`='%u' AND `SlotId`='%u'",
|
||||
GetId(), uint32(tab), uint32(slot));
|
||||
}
|
||||
|
||||
|
|
@ -2369,7 +2369,7 @@ void Guild::SetGuildBankTabText(uint8 TabId, std::string text)
|
|||
m_TabListMap[TabId]->Text = text;
|
||||
|
||||
CharacterDatabase.escape_string(text);
|
||||
CharacterDatabase.PExecute("UPDATE guild_bank_tab SET TabText='%s' WHERE guildid='%u' AND TabId='%u'", text.c_str(), m_Id, uint32(TabId));
|
||||
CharacterDatabase.PExecute("UPDATE `guild_bank_tab` SET `TabText`='%s' WHERE `guildid`='%u' AND `TabId`='%u'", text.c_str(), m_Id, uint32(TabId));
|
||||
|
||||
// announce
|
||||
SendGuildBankTabText(NULL, TabId);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue