1
0
Fork 0

Remove leading slash from command block commands (#4502)

This commit is contained in:
Mat 2020-03-19 21:06:25 +02:00 committed by GitHub
parent 0e07e231a2
commit 646d3d6a2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 6 deletions

View File

@ -163,6 +163,11 @@ void cCommandBlockEntity::Execute()
return;
}
if (m_Command.empty())
{
return;
}
class CommandBlockOutCb :
public cCommandOutputCallback
{
@ -175,21 +180,30 @@ void cCommandBlockEntity::Execute()
{
// Overwrite field
m_CmdBlock->SetLastOutput(cClientHandle::FormatChatPrefix(m_CmdBlock->GetWorld()->ShouldUseChatPrefixes(), "SUCCESS", cChatColor::Green, cChatColor::White) + a_Text);
m_CmdBlock->GetWorld()->BroadcastBlockEntity(m_CmdBlock->GetPos());
}
} CmdBlockOutCb(this);
AString RealCommand = m_Command;
// Remove leading slash if it exists, since console commands don't use them
if (RealCommand[0] == '/')
{
RealCommand = RealCommand.substr(1, RealCommand.length());
}
// Administrator commands are not executable by command blocks:
if (
(m_Command != "stop") &&
(m_Command != "restart") &&
(m_Command != "kick") &&
(m_Command != "ban") &&
(m_Command != "ipban")
(RealCommand != "stop") &&
(RealCommand != "restart") &&
(RealCommand != "kick") &&
(RealCommand != "ban") &&
(RealCommand != "ipban")
)
{
cServer * Server = cRoot::Get()->GetServer();
LOGD("cCommandBlockEntity: Executing command %s", m_Command.c_str());
Server->ExecuteConsoleCommand(m_Command, CmdBlockOutCb);
Server->ExecuteConsoleCommand(RealCommand, CmdBlockOutCb);
}
else
{