Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * orginal code by ??
- * developed for last rev && added more option by irancore.ir
- *
- * import to database - auth - allow to player use cmd
- REPLACE INTO `rbac_linked_permissions` (`id`, `linkedId`) VALUES (195, 525);
- * import to database - world - Passive report chat cencured to gms
- REPLACE INTO `trinity_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES (17000, 'Player |cff00ff00%s|r Chat Cencured : |cffff0000%s', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
- * My Discord : Ac_Dev#8552
- */
- #include "Rbac.h"
- #include "Config.h"
- #include "WorldSession.h"
- #include "Player.h"
- #include "Chat.h"
- #include "World.h"
- #include "DatabaseEnv.h"
- #define Playedtimetochat 1500
- #define mutetimecencure 300
- #define mutetimeantispam 10
- #define FACTION_SPECIFIC 0
- using namespace std;
- const char* CLASS_ICON;
- const char* RACE_ICON;
- std::string GetNameLink(Player* player)
- {
- std::string name = player->GetName();
- std::string color;
- std::string icon;
- switch (player->GetRace())
- {
- // Done - Bloodelf
- case RACE_BLOODELF:
- if (player->GetGender() == GENDER_MALE)
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Bloodelf_Male:15|t";
- else
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Bloodelf_Female:15|t";
- break;
- // Done - Dranei
- case RACE_DRAENEI:
- if (player->GetGender() == GENDER_FEMALE)
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Draenei_Female:15|t";
- else
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Draenei_Male:15|t";
- break;
- case RACE_DWARF:
- if (player->GetGender() == GENDER_FEMALE)
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Dwarf_Female:15|t";
- else
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Dwarf_Male:15|t";
- break;
- // Done - Gnome
- case RACE_GNOME:
- if (player->GetGender() == GENDER_FEMALE)
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Gnome_Female:15|t";
- else
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Gnome_Male:15|t";
- break;
- // Done - Human
- case RACE_HUMAN:
- if (player->GetGender() == GENDER_FEMALE)
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Human_Female:15|t";
- else
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Human_Male:15|t";
- break;
- case RACE_NIGHTELF:
- if (player->GetGender() == GENDER_FEMALE)
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Nightelf_Female:15|t";
- else
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Nightelf_Male:15|t";
- break;
- case RACE_ORC:
- if (player->GetGender() == GENDER_FEMALE)
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Orc_Female:15|t";
- else
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Orc_Male:15|t";
- break;
- // Done - Tauren
- case RACE_TAUREN:
- if (player->GetGender() == GENDER_FEMALE)
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Tauren_Female:15|t";
- else
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Tauren_Male:15|t";
- break;
- case RACE_TROLL:
- if (player->GetGender() == GENDER_FEMALE)
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Troll_Female:15|t";
- else
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Troll_Male:15|t";
- break;
- case RACE_UNDEAD_PLAYER:
- if (player->GetGender() == GENDER_FEMALE)
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Undead_Female:15|t";
- else
- RACE_ICON = "|TInterface/ICONS/Achievement_Character_Undead_Male:15|t";
- break;
- }
- switch (player->GetClass())
- {
- case CLASS_DEATH_KNIGHT:
- color = "|cffC41F3B";
- //CLASS_ICON = "|TInterface\\icons\\Spell_Deathknight_ClassIcon:15|t|r";
- break;
- case CLASS_DRUID:
- color = "|cffFF7D0A";
- // CLASS_ICON = "|TInterface\\icons\\Ability_Druid_Maul:15|t|r";
- break;
- case CLASS_HUNTER:
- color = "|cffABD473";
- // CLASS_ICON = "|TInterface\\icons\\INV_Weapon_Bow_07:15|t|r";
- break;
- case CLASS_MAGE:
- color = "|cff69CCF0";
- //CLASS_ICON = "|TInterface\\icons\\INV_Staff_13:15|t|r";
- break;
- case CLASS_PALADIN:
- color = "|cffF58CBA";
- // CLASS_ICON = "|TInterface\\icons\\INV_Hammer_01:15|t|r";
- break;
- case CLASS_PRIEST:
- color = "|cffFFFFFF";
- // CLASS_ICON = "|TInterface\\icons\\INV_Staff_30:15|t|r";
- break;
- case CLASS_ROGUE:
- color = "|cffFFF569";
- // CLASS_ICON = "|TInterface\\icons\\INV_ThrowingKnife_04:15|t|r";
- break;
- case CLASS_SHAMAN:
- color = "|cff0070DE";
- // CLASS_ICON = "|TInterface\\icons\\Spell_Nature_BloodLust:15|t|r";
- break;
- case CLASS_WARLOCK:
- color = "|cff9482C9";
- // CLASS_ICON = "|TInterface\\icons\\Spell_Nature_FaerieFire:15|t|r";
- break;
- case CLASS_WARRIOR:
- color = "|cffC79C6E";
- // CLASS_ICON = "|TInterface\\icons\\INV_Sword_27.png:15|t|r";
- break;
- }
- return "|Hplayer:" + name + "|h" + RACE_ICON + "|cffFFFFFF[" + color + name + "|cffFFFFFF]|h|r";
- }
- void _SendWorldChat(Player* player, string message)
- {
- size_t stringpos;
- if (message.find("|TInterface") != string::npos)
- return;
- if (message.find("\n") != string::npos)
- return;
- if ((stringpos = message.find("|Hquest:")) != string::npos)
- return;
- if ((stringpos = message.find("|Htrade:")) != string::npos)
- return;
- if ((stringpos = message.find("|Htalent:")) != string::npos)
- return;
- if ((stringpos = message.find("|Henchant:")) != string::npos)
- return;
- if ((stringpos = message.find("|Hachievement:")) != string::npos)
- return;
- if ((stringpos = message.find("|Hglyph:")) != string::npos)
- return;
- if ((stringpos = message.find("|Hspell:")) != string::npos)
- return;
- if ((stringpos = message.find("Hitem:")) != string::npos)
- return;
- if (message.find("|c") != string::npos && message.find("|r") != string::npos)
- return;
- if (message.find("|c") != string::npos && message.find("|h") != string::npos)
- return;
- uint8 cheksSize = 118;//Change these if you want to add more words to the array.
- std::string checks[118];//Change these if you want to add more words to the array.
- // Strony (Sites)
- // Strony (Sites)
- checks[0] = "http://";
- checks[1] = ".com";
- checks[2] = ".net";
- checks[3] = ".org";
- checks[4] = "www.";
- checks[5] = "wow-";
- checks[6] = "-wow";
- checks[7] = "no-ip";
- checks[8] = ".zapto";
- checks[9] = ".biz";
- checks[10] = ".servegame";
- checks[11] = ".ir";
- checks[12] = "com.br";
- checks[13] = "h t t p : / /";
- checks[14] = ". c o m";
- checks[15] = ". n e t";
- checks[16] = ". o r g";
- checks[17] = "w w w .";
- checks[18] = " w o w -";
- checks[19] = "- w o w";
- checks[20] = "n o - i p";
- checks[21] = ". z a p t o";
- checks[22] = ". b i z";
- checks[23] = ". s e r v e g a m e";
- checks[24] = ". b r";
- checks[25] = "c o m . b r";
- checks[26] = "h t t p : / /";
- checks[27] = ". c o m";
- checks[28] = ". n e t";
- checks[29] = ". o r g";
- checks[30] = "w w w .";
- checks[31] = " w o w -";
- checks[32] = "- w o w";
- checks[33] = "n o - i p";
- checks[34] = ". z a p t o";
- checks[35] = ". b i z";
- checks[36] = ". s e r v e g a m e";
- checks[37] = ". b r";
- checks[38] = "c o m . b r";
- checks[39] = "h t t p : / /";
- checks[40] = ". c o m";
- checks[41] = ". n e t";
- checks[42] = ". o r g";
- checks[43] = "w w w .";
- checks[44] = " w o w -";
- checks[45] = "- w o w";
- checks[46] = "n o - i p";
- checks[47] = ". z a p t o";
- checks[48] = ". b i z";
- checks[49] = ". s e r v e g a m e";
- checks[50] = ". b r";
- checks[51] = " c o m . b r";
- checks[52] = "h t t p : / /";
- checks[53] = ". c o m";
- checks[54] = ". n e t";
- checks[55] = ". o r g";
- checks[56] = "w w w .";
- checks[57] = "w o w -";
- checks[58] = "- w o w";
- checks[59] = "n o - i p";
- checks[60] = ". z a p t o";
- checks[61] = ". b i z";
- checks[62] = ". s e r v e g a m e";
- checks[63] = ". b r";
- checks[64] = "c o m . b r";
- checks[65] = "trevon";
- checks[66] = "megawow";
- checks[67] = "fatalwow";
- checks[68] = "uniforgiven-wow";
- checks[69] = "wow-autolouco";
- checks[70] = "heaven-wow";
- checks[71] = "fireballwow";
- checks[72] = "wowbrasilpa";
- checks[73] = "fatalitywow";
- checks[74] = "demonic-wow";
- checks[75] = "revenge-wow";
- checks[76] = "heavenwow";
- checks[77] = "logon.";
- checks[78] = "linebr";
- checks[79] = "azralon";
- checks[80] = "ultra";
- checks[81] = "ultra-wow";
- checks[82] = "t r e v o n";
- checks[83] = "m e g a w o w";
- checks[84] = "f a t a l w o w";
- checks[85] = "u n i f o r g i v e n - w o w";
- checks[86] = "w o w - a u t o l o u c o";
- checks[87] = "h e a v e n - w o w";
- checks[88] = "f i r e b a l l w o w";
- checks[89] = "w o w b r a s i l p a";
- checks[90] = "f a t a l i t y w o w";
- checks[91] = "d e m o n i c - w o w";
- checks[92] = "r e v e n g e - w o w";
- checks[93] = "h e a v e n w o w";
- checks[94] = "u n d e a d - w o w";
- checks[95] = "l i n e b r";
- checks[96] = "a z r a l o n";
- checks[97] = "b l a c k - w o w";
- checks[98] = "t r e v o n w o w";
- checks[99] = "t r e v o n";
- checks[100] = "m e g a w o w";
- checks[101] = "f a t a l w o w";
- checks[102] = "u n i f o r g i v e n - w o w";
- checks[103] = "w o w - a u t o l o u c o";
- checks[104] = "h e a v e n - w o w";
- checks[105] = "f i r e b a l l w o w";
- checks[106] = "w o w b r a s i l p a";
- checks[107] = "f a t a l i t y w o w";
- checks[108] = "d e m o n i c - w o w";
- checks[109] = "r e v e n g e - w o w";
- checks[110] = "h e a v e n w o w";
- checks[111] = "u n d e a d - w o w";
- checks[112] = "l i n e b r";
- checks[113] = "a z r a l o n";
- checks[114] = "b l a c k - w o w";
- checks[115] = "t r e v o n w o w";
- checks[116] = " [The Lightbringer's Redemption]"; // old source code will crashed with this macro we cencured this
- checks[117] = "[The Lightbringer's Redemption]"; // old source code will crashed with this macro we cencured this
- for (int i = 0; i < cheksSize; ++i)
- {
- if (message.find(checks[i]) != string::npos)
- {
- std::string say = "";
- std::string str = "";
- say = message;
- sWorld->SendGMText(17000, player->GetName().c_str(), say.c_str()); // sned passive report to gm
- say = "";
- ChatHandler(player->GetSession()).PSendSysMessage("Links or Bad Words are not allowed on the server.");
- LoginDatabasePreparedStatement* mt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME);
- int64 muteTime = time(NULL) + mutetimecencure; // muted player if use bad words
- player->GetSession()->m_muteTime = muteTime;
- mt->setInt64(0, muteTime);
- return;
- }
- }
- string msg;
- ostringstream chat_string;
- if (player->GetTotalPlayedTime() <= Playedtimetochat) // New If - Played Time Need For Use This Cmd
- {
- std::string adStr = secsToTimeString(Playedtimetochat - player->GetTotalPlayedTime());
- player->GetSession()->SendNotification("You Must %s seconds played To use world chat!", adStr.c_str());
- return;
- }
- // if you have vip script can enable this option and will work eazy like amdwow
- /*switch (player->GetSession()->GetVipLevel()) // vip cases aded
- {
- case 1: // Vip Rank 1
- msg += "|cffffffff[VIP Bronze]";
- break;
- case 2: // Vip Rank 1
- msg += "|cffbbbbbb[VIP Silver]";
- break;
- case 3: // Vip Rank 1
- msg += "|cffff00ff[VIP Gold]";
- break;
- case 4: // Vip Rank 1
- msg += "|cffff6060[VIP Platinum]";
- break;
- case 5: // Vip Rank 1
- msg += "|cff0000ff[VIP Diamond]";
- break;
- case 6: // Vip Rank 1
- msg += "|cffff0000[VIP Warlord]";
- break;
- }*/
- switch (player->GetSession()->GetSecurity())
- {
- // Player
- case SEC_PLAYER:
- if (player->GetTeam() == ALLIANCE)
- {
- msg += "|cff00ff00[World] ";
- msg += "|cfffa9900[Player]";
- msg += "|cff0000ff|TInterface\\pvpframe\\pvp-currency-alliance:17|t|r ";
- msg += GetNameLink(player);
- msg += ":|cfffaeb00";
- }
- else
- {
- msg += "|cff00ff00[World] ";
- msg += "|cfffa9900[Player]";
- msg += "|cffff0000|TInterface\\pvpframe\\pvp-currency-horde:17|t|r ";
- msg += GetNameLink(player);
- msg += ":|cfffaeb00";
- }
- break;
- // Moderator
- case SEC_MODERATOR:
- msg += "|cff00ff00[World]";
- msg += "|cffFF8C00[Moderator]";
- msg += " |TINTERFACE/CHATFRAME/UI-CHATICON-BLIZZ:15|t|r ";
- msg += GetNameLink(player);
- msg += ":|cfffaeb00";
- break;
- case SEC_GAMEMASTER:
- msg += "|cff00ff00[World]";
- msg += "|cffFF8C00[GM]";
- msg += " |TINTERFACE/CHATFRAME/UI-CHATICON-BLIZZ:15|t|r ";
- msg += GetNameLink(player);
- msg += ":|cfffaeb00";
- break;
- case SEC_ADMINISTRATOR:
- msg += "|cff00ff00[World]";
- msg += "|cffFF8C00[Head GM]";
- msg += " |TINTERFACE/CHATFRAME/UI-CHATICON-BLIZZ:15|t|r ";
- msg += GetNameLink(player);
- msg += ":|cfffaeb00";
- break;
- case SEC_CONSOLE:
- msg += "|cff00ff00[World]";
- msg += "|cffFF0000[ConSOle]";
- msg += " |TINTERFACE/CHATFRAME/UI-CHATICON-BLIZZ:15|t|r ";
- msg += GetNameLink(player);
- msg += ":|cfffaeb00";
- break;
- }
- chat_string << msg << " " << message;
- char c_msg[1024];
- snprintf(c_msg, 1024, chat_string.str().c_str());
- if (FACTION_SPECIFIC)
- {
- SessionMap sessions = sWorld->GetAllSessions();
- for (SessionMap::iterator itr = sessions.begin(); itr != sessions.end(); ++itr)
- if (Player* plr = itr->second->GetPlayer())
- if (plr->GetTeam() == player->GetTeam())
- sWorld->SendServerMessage(SERVER_MSG_STRING, msg.c_str(), plr);
- }
- else
- sWorld->SendGlobalText(c_msg, NULL);
- }
- class cs_world_chat : public CommandScript
- {
- public:
- cs_world_chat() : CommandScript("cs_world_chat") {}
- static bool HandleWorldChatCommand(ChatHandler* handler, const char* args)
- {
- if (!*args)
- return false;
- Player* player = handler->GetSession()->GetPlayer();
- _SendWorldChat(handler->GetSession()->GetPlayer(), args);
- // add mute time for stop spam
- LoginDatabasePreparedStatement* mt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME);
- int64 muteTime = time(NULL) + mutetimeantispam;
- player->GetSession()->m_muteTime = muteTime;
- mt->setInt64(0, muteTime);
- return true;
- }
- std::vector<ChatCommand> GetCommands() const override
- {
- static std::vector<ChatCommand> cs_world_chat =
- {
- {"chat", rbac::RBAC_PERM_COMMAND_SAVE, true, &HandleWorldChatCommand, "" },
- {"c", rbac::RBAC_PERM_COMMAND_SAVE, true, &HandleWorldChatCommand, "" },
- {"world", rbac::RBAC_PERM_COMMAND_SAVE, true, &HandleWorldChatCommand, "" },
- };
- return cs_world_chat;
- }
- };
- void AddSC_cs_world_chat()
- {
- new cs_world_chat;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement