aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/mangos.sql7
-rw-r--r--sql/updates/7422_01_mangos_mangos_string.sql9
-rw-r--r--src/game/Guild.cpp36
-rw-r--r--src/game/Guild.h2
-rw-r--r--src/game/GuildHandler.cpp2
-rw-r--r--src/game/Language.h7
-rw-r--r--src/game/Level3.cpp2
-rw-r--r--src/game/PetitionsHandler.cpp2
-rw-r--r--src/shared/revision_nr.h2
9 files changed, 41 insertions, 28 deletions
diff --git a/sql/mangos.sql b/sql/mangos.sql
index cd49b0087eb..fed04397b1d 100644
--- a/sql/mangos.sql
+++ b/sql/mangos.sql
@@ -22,7 +22,7 @@
DROP TABLE IF EXISTS `db_version`;
CREATE TABLE `db_version` (
`version` varchar(120) default NULL,
- `required_7399_01_mangos_mangos_string` bit(1) default NULL
+ `required_7422_01_mangos_mangos_string` bit(1) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
--
@@ -2848,6 +2848,11 @@ INSERT INTO `mangos_string` VALUES
(808,'Player %s not found or offline',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(809,'Account for character %s not found',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(810,'|Hplayer:$N|h[$N]|h has earned the achievement $a!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+(811,'Guild Master',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+(812,'Officer',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+(813,'Veteran',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+(814,'Member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+(815,'Initiate',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(1000,'Exiting daemon...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(1001,'Account deleted: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(1002,'Account %s NOT deleted (probably sql file format was updated)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
diff --git a/sql/updates/7422_01_mangos_mangos_string.sql b/sql/updates/7422_01_mangos_mangos_string.sql
new file mode 100644
index 00000000000..affe8f74780
--- /dev/null
+++ b/sql/updates/7422_01_mangos_mangos_string.sql
@@ -0,0 +1,9 @@
+ALTER TABLE db_version CHANGE COLUMN required_7399_01_mangos_mangos_string required_7422_01_mangos_mangos_string bit;
+
+DELETE FROM mangos_string WHERE entry in (811, 812, 813, 814, 815);
+INSERT INTO mangos_string VALUES
+ (811,'Guild Master',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+ (812,'Officer',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+ (813,'Veteran',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+ (814,'Member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+ (815,'Initiate',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
diff --git a/src/game/Guild.cpp b/src/game/Guild.cpp
index 2132a69fec1..4aa9f54f682 100644
--- a/src/game/Guild.cpp
+++ b/src/game/Guild.cpp
@@ -28,6 +28,7 @@
#include "Chat.h"
#include "SocialMgr.h"
#include "Util.h"
+#include "Language.h"
Guild::Guild()
{
@@ -51,27 +52,25 @@ Guild::~Guild()
}
-bool Guild::create(uint64 lGuid, std::string gname)
+bool Guild::create(Player* leader, std::string gname)
{
- std::string rname;
- std::string lName;
-
- if(!objmgr.GetPlayerNameByGUID(lGuid, lName))
- return false;
if(objmgr.GetGuildByName(gname))
return false;
- sLog.outDebug("GUILD: creating guild %s to leader: %u", gname.c_str(), GUID_LOPART(lGuid));
+ WorldSession* lSession = leader->GetSession();
+ if(!lSession)
+ return false;
- leaderGuid = lGuid;
+ leaderGuid = leader->GetGUID();
name = gname;
GINFO = "";
MOTD = "No message set.";
guildbank_money = 0;
purchased_tabs = 0;
-
Id = objmgr.GenerateGuildId();
+ sLog.outDebug("GUILD: creating guild %s to leader: %u", gname.c_str(), GUID_LOPART(leaderGuid));
+
// gname already assigned to Guild::name, use it to encode string for DB
CharacterDatabase.escape_string(gname);
@@ -89,18 +88,13 @@ bool Guild::create(uint64 lGuid, std::string gname)
Id, gname.c_str(), GUID_LOPART(leaderGuid), dbGINFO.c_str(), dbMOTD.c_str(), EmblemStyle, EmblemColor, BorderStyle, BorderColor, BackgroundColor, guildbank_money);
CharacterDatabase.CommitTransaction();
- rname = "Guild Master";
- CreateRank(rname,GR_RIGHT_ALL);
- rname = "Officer";
- CreateRank(rname,GR_RIGHT_ALL);
- rname = "Veteran";
- CreateRank(rname,GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK);
- rname = "Member";
- CreateRank(rname,GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK);
- rname = "Initiate";
- CreateRank(rname,GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK);
-
- return AddMember(lGuid, (uint32)GR_GUILDMASTER);
+ CreateRank(lSession->GetMangosString(LANG_GUILD_MASTER), GR_RIGHT_ALL);
+ CreateRank(lSession->GetMangosString(LANG_GUILD_OFFICER), GR_RIGHT_ALL);
+ CreateRank(lSession->GetMangosString(LANG_GUILD_VETERAN), GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK);
+ CreateRank(lSession->GetMangosString(LANG_GUILD_MEMBER), GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK);
+ CreateRank(lSession->GetMangosString(LANG_GUILD_INITIATE),GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK);
+
+ return AddMember(leaderGuid, (uint32)GR_GUILDMASTER);
}
bool Guild::AddMember(uint64 plGuid, uint32 plRank)
diff --git a/src/game/Guild.h b/src/game/Guild.h
index fb124bbc8e4..12dea1feb1f 100644
--- a/src/game/Guild.h
+++ b/src/game/Guild.h
@@ -269,7 +269,7 @@ class Guild
Guild();
~Guild();
- bool create(uint64 lGuid, std::string gname);
+ bool create(Player* leader, std::string gname);
void Disband();
typedef std::map<uint32, MemberSlot> MemberList;
diff --git a/src/game/GuildHandler.cpp b/src/game/GuildHandler.cpp
index 5c4c18d64d9..358d48292a3 100644
--- a/src/game/GuildHandler.cpp
+++ b/src/game/GuildHandler.cpp
@@ -64,7 +64,7 @@ void WorldSession::HandleGuildCreateOpcode(WorldPacket& recvPacket)
return;
Guild *guild = new Guild;
- if(!guild->create(GetPlayer()->GetGUID(),gname))
+ if(!guild->create(GetPlayer(),gname))
{
delete guild;
return;
diff --git a/src/game/Language.h b/src/game/Language.h
index 0bb9ca3318c..be303c294e4 100644
--- a/src/game/Language.h
+++ b/src/game/Language.h
@@ -710,7 +710,12 @@ enum TrinityStrings
LANG_PLAYER_NOT_EXIST_OR_OFFLINE = 808,
LANG_ACCOUNT_FOR_PLAYER_NOT_FOUND = 809,
LANG_ACHIEVEMENT_EARNED = 810,
- // Room for in-game strings 811-999 not used
+ LANG_GUILD_MASTER = 811,
+ LANG_GUILD_OFFICER = 812,
+ LANG_GUILD_VETERAN = 813,
+ LANG_GUILD_MEMBER = 814,
+ LANG_GUILD_INITIATE = 815,
+ // Room for in-game strings 816-999 not used
// Level 4 (CLI only commands)
LANG_COMMAND_EXIT = 1000,
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp
index 8dc176cb023..80d73d4dffe 100644
--- a/src/game/Level3.cpp
+++ b/src/game/Level3.cpp
@@ -3636,7 +3636,7 @@ bool ChatHandler::HandleGuildCreateCommand(const char* args)
}
Guild *guild = new Guild;
- if (!guild->create (player->GetGUID (),guildname))
+ if (!guild->create (player,guildname))
{
delete guild;
SendSysMessage (LANG_GUILD_NOT_CREATED);
diff --git a/src/game/PetitionsHandler.cpp b/src/game/PetitionsHandler.cpp
index df9761a7f53..2b225283749 100644
--- a/src/game/PetitionsHandler.cpp
+++ b/src/game/PetitionsHandler.cpp
@@ -826,7 +826,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data)
if(type == 9) // create guild
{
Guild* guild = new Guild;
- if(!guild->create(_player->GetGUID(), name))
+ if(!guild->create(_player, name))
{
delete guild;
delete result;
diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h
index 6af72ad25e0..b78c81a0466 100644
--- a/src/shared/revision_nr.h
+++ b/src/shared/revision_nr.h
@@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
- #define REVISION_NR "7421"
+ #define REVISION_NR "7422"
#endif // __REVISION_NR_H__