AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
chatfilter_commandscript Class Reference
Inheritance diagram for chatfilter_commandscript:
CommandScript ScriptObject

Public Member Functions

 chatfilter_commandscript ()
 
ChatCommandTable GetCommands () const override
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
uint16 GetTotalAvailableHooks ()
 

Static Public Member Functions

static bool HandleChatFilterListCommand (ChatHandler *handler)
 
static bool HandleChatFilterAddCommand (ChatHandler *handler, Tail word)
 
static bool HandleChatFilterRemoveCommand (ChatHandler *handler, Tail word)
 

Additional Inherited Members

- Protected Member Functions inherited from CommandScript
 CommandScript (const char *name)
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (const char *name, uint16 totalAvailableHooks=0)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ chatfilter_commandscript()

chatfilter_commandscript::chatfilter_commandscript ( )
inline
28: CommandScript("chatfilter_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ GetCommands()

ChatCommandTable chatfilter_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

31 {
32 static ChatCommandTable chatfilterCommandTable =
33 {
37 };
38
39 static ChatCommandTable commandTable =
40 {
41 { "chatfilter", chatfilterCommandTable }
42 };
43
44 return commandTable;
45 }
static bool HandleChatFilterAddCommand(ChatHandler *handler, Tail word)
Definition cs_chatfilter.cpp:73
static bool HandleChatFilterListCommand(ChatHandler *handler)
Definition cs_chatfilter.cpp:47
static bool HandleChatFilterRemoveCommand(ChatHandler *handler, Tail word)
Definition cs_chatfilter.cpp:98
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46
@ RBAC_PERM_COMMAND_CHATFILTER_REMOVE
Definition RBAC.h:689
@ RBAC_PERM_COMMAND_CHATFILTER_LIST
Definition RBAC.h:687
@ RBAC_PERM_COMMAND_CHATFILTER_ADD
Definition RBAC.h:688

References HandleChatFilterAddCommand(), HandleChatFilterListCommand(), HandleChatFilterRemoveCommand(), rbac::RBAC_PERM_COMMAND_CHATFILTER_ADD, rbac::RBAC_PERM_COMMAND_CHATFILTER_LIST, and rbac::RBAC_PERM_COMMAND_CHATFILTER_REMOVE.

◆ HandleChatFilterAddCommand()

static bool chatfilter_commandscript::HandleChatFilterAddCommand ( ChatHandler handler,
Tail  word 
)
inlinestatic
74 {
75 if (word.empty())
76 return false;
77
78 std::string text(word);
79
81 stmt->SetData(0, text);
82 if (CharacterDatabase.Query(stmt))
83 {
84 handler->SendErrorMessage("Chat filter word \"{}\" already exists.", text);
85 return true;
86 }
87
88 stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAT_FILTER_WORD);
89 stmt->SetData(0, text);
90 CharacterDatabase.DirectExecute(stmt);
91
92 sObjectMgr->LoadChatFilter();
93
94 handler->PSendSysMessage("Chat filter word \"{}\" added.", text);
95 return true;
96 }
@ CHAR_INS_CHAT_FILTER_WORD
Definition CharacterDatabase.h:528
@ CHAR_SEL_CHAT_FILTER_WORD
Definition CharacterDatabase.h:527
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Definition DatabaseEnv.cpp:21
#define sObjectMgr
Definition ObjectMgr.h:1732
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:219
void SendErrorMessage(uint32 entry)
Definition Chat.cpp:224
Acore::Types::is_default< T > SetData(const uint8 index, T value)
Definition PreparedStatement.h:77
Definition PreparedStatement.h:157

References CHAR_INS_CHAT_FILTER_WORD, CHAR_SEL_CHAT_FILTER_WORD, CharacterDatabase, ChatHandler::PSendSysMessage(), ChatHandler::SendErrorMessage(), PreparedStatementBase::SetData(), and sObjectMgr.

Referenced by GetCommands().

◆ HandleChatFilterListCommand()

static bool chatfilter_commandscript::HandleChatFilterListCommand ( ChatHandler handler)
inlinestatic
48 {
50 PreparedQueryResult result = CharacterDatabase.Query(stmt);
51
52 if (!result)
53 {
54 handler->SendSysMessage("No chat filter words found.");
55 return true;
56 }
57
58 handler->SendSysMessage("Chat filter words:");
59 uint32 count = 0;
60 do
61 {
62 Field* fields = result->Fetch();
63 uint32 id = fields[0].Get<uint32>();
64 std::string word = fields[1].Get<std::string>();
65 handler->PSendSysMessage(" ID: {} | Word: {}", id, word);
66 ++count;
67 } while (result->NextRow());
68
69 handler->PSendSysMessage("{} chat filter word(s) total.", count);
70 return true;
71 }
@ CHAR_SEL_CHAT_FILTER
Definition CharacterDatabase.h:526
std::shared_ptr< PreparedResultSet > PreparedQueryResult
Definition DatabaseEnvFwd.h:45
std::uint32_t uint32
Definition Define.h:107
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:168
Class used to access individual fields of database query result.
Definition Field.h:98
std::enable_if_t< std::is_arithmetic_v< T >, T > Get() const
Definition Field.h:112

References CHAR_SEL_CHAT_FILTER, CharacterDatabase, Field::Get(), ChatHandler::PSendSysMessage(), and ChatHandler::SendSysMessage().

Referenced by GetCommands().

◆ HandleChatFilterRemoveCommand()

static bool chatfilter_commandscript::HandleChatFilterRemoveCommand ( ChatHandler handler,
Tail  word 
)
inlinestatic
99 {
100 if (word.empty())
101 return false;
102
103 std::string text(word);
104
106 stmt->SetData(0, text);
107 if (!CharacterDatabase.Query(stmt))
108 {
109 handler->SendErrorMessage("Chat filter word \"{}\" not found.", text);
110 return true;
111 }
112
113 stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAT_FILTER_WORD);
114 stmt->SetData(0, text);
115 CharacterDatabase.DirectExecute(stmt);
116
117 sObjectMgr->LoadChatFilter();
118
119 handler->PSendSysMessage("Chat filter word \"{}\" removed.", text);
120 return true;
121 }
@ CHAR_DEL_CHAT_FILTER_WORD
Definition CharacterDatabase.h:529

References CHAR_DEL_CHAT_FILTER_WORD, CHAR_SEL_CHAT_FILTER_WORD, CharacterDatabase, ChatHandler::PSendSysMessage(), ChatHandler::SendErrorMessage(), PreparedStatementBase::SetData(), and sObjectMgr.

Referenced by GetCommands().


The documentation for this class was generated from the following file: