Compare commits
2 Commits
dddd69472a
...
plugins-su
| Author | SHA1 | Date | |
|---|---|---|---|
| 867114b0f3 | |||
| 1a8ead4955 |
@@ -5,6 +5,7 @@
|
|||||||
#include "world/level/Level.h"
|
#include "world/level/Level.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <client/Minecraft.h>
|
#include <client/Minecraft.h>
|
||||||
|
#include <network/packet/LoginStatusPacket.h>
|
||||||
|
|
||||||
CommandBan::CommandBan() : Command("ban") {}
|
CommandBan::CommandBan() : Command("ban") {}
|
||||||
|
|
||||||
@@ -31,12 +32,6 @@ std::string CommandBan::execute(Minecraft& mc, Player& player, const std::vector
|
|||||||
if (*it == (Player*)mc.player) {
|
if (*it == (Player*)mc.player) {
|
||||||
return "banip: you can't ban urself lol";
|
return "banip: you can't ban urself lol";
|
||||||
}
|
}
|
||||||
|
|
||||||
auto sourceId = (*it)->owner;
|
|
||||||
|
|
||||||
(*it)->reallyRemoveIfPlayer = true;
|
|
||||||
mc.level->removeEntity((*it));
|
|
||||||
mc.raknetInstance->getPeer()->CloseConnection(sourceId, true);
|
|
||||||
} else {
|
} else {
|
||||||
for (auto& banned : mc.level->bannedPpl) {
|
for (auto& banned : mc.level->bannedPpl) {
|
||||||
if (nicknameLower == banned) {
|
if (nicknameLower == banned) {
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
#include "../server/ServerPlayer.h"
|
#include "../server/ServerPlayer.h"
|
||||||
#include "../world/entity/item/FallingTile.h"
|
#include "../world/entity/item/FallingTile.h"
|
||||||
#include <plugins/LuaPlayer.hpp>
|
#include <plugins/LuaPlayer.hpp>
|
||||||
|
#include <plugins/MessageEvent.hpp>
|
||||||
|
|
||||||
#define TIMES(x) for(int itc ## __LINE__ = 0; itc ## __LINE__ < x; ++ itc ## __LINE__)
|
#define TIMES(x) for(int itc ## __LINE__ = 0; itc ## __LINE__ < x; ++ itc ## __LINE__)
|
||||||
|
|
||||||
@@ -164,23 +165,24 @@ void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, MessageP
|
|||||||
|
|
||||||
auto msg = std::string(packet->message.C_String());
|
auto msg = std::string(packet->message.C_String());
|
||||||
|
|
||||||
if (packet->message[0] == '/') {
|
MessageEvent event;
|
||||||
// This is a command
|
event.m_decline = false;
|
||||||
auto cmd = Util::stringTrim(msg);
|
|
||||||
|
|
||||||
if (PluginsManager::get().emitCommands(msg, source)) {
|
|
||||||
ChatPacket resp(minecraft->commandManager().execute(*minecraft, *player, msg));
|
|
||||||
return sendPrivate(resp, source);
|
|
||||||
} else {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// @todo rewrite
|
|
||||||
bool shouldShow = true;
|
|
||||||
|
|
||||||
PluginsManager::get().emit("Message", LuaPlayer(source), packet->message);
|
PluginsManager::get().emit("Message", LuaPlayer(source), msg, event);
|
||||||
|
|
||||||
|
if (!event.m_decline) {
|
||||||
|
if (packet->message[0] == '/') {
|
||||||
|
// This is a command
|
||||||
|
auto cmd = Util::stringTrim(msg.substr(1));
|
||||||
|
|
||||||
|
if (PluginsManager::get().emitCommands(cmd, source)) {
|
||||||
|
ChatPacket resp(minecraft->commandManager().execute(*minecraft, *player, cmd));
|
||||||
|
return sendPrivate(resp, source);
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (shouldShow) {
|
|
||||||
displayGameMessage("<" + player->name + "> " + msg);
|
displayGameMessage("<" + player->name + "> " + msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -191,20 +193,26 @@ void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ChatPack
|
|||||||
|
|
||||||
if (player == nullptr) return; // @todo maybe kick?
|
if (player == nullptr) return; // @todo maybe kick?
|
||||||
|
|
||||||
if (packet->message[0] == '/') {
|
MessageEvent event;
|
||||||
// This is a command
|
event.m_decline = false;
|
||||||
auto cmd = Util::stringTrim(packet->message.substr(1));
|
|
||||||
|
PluginsManager::get().emit("Message", LuaPlayer(source), packet->message, event);
|
||||||
|
|
||||||
|
if (!event.m_decline) {
|
||||||
|
if (packet->message[0] == '/') {
|
||||||
|
// This is a command
|
||||||
|
auto cmd = Util::stringTrim(packet->message.substr(1));
|
||||||
|
|
||||||
if (PluginsManager::get().emitCommands(cmd, source)) {
|
if (PluginsManager::get().emitCommands(cmd, source)) {
|
||||||
ChatPacket resp(minecraft->commandManager().execute(*minecraft, *player, cmd));
|
ChatPacket resp(minecraft->commandManager().execute(*minecraft, *player, cmd));
|
||||||
return sendPrivate(resp, source);
|
return sendPrivate(resp, source);
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
displayGameMessage("<" + player->name + "> " + packet->message);
|
displayGameMessage("<" + player->name + "> " + packet->message);
|
||||||
PluginsManager::get().emit("Message", LuaPlayer(source), packet->message);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerSideNetworkHandler::onNewClient(const RakNet::RakNetGUID& clientGuid)
|
void ServerSideNetworkHandler::onNewClient(const RakNet::RakNetGUID& clientGuid)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <raknet/RakNetTypes.h>
|
#include <raknet/RakNetTypes.h>
|
||||||
#include <plugins/PluginsManager.hpp>
|
#include <plugins/PluginsManager.hpp>
|
||||||
|
|||||||
9
src/plugins/MessageEvent.hpp
Normal file
9
src/plugins/MessageEvent.hpp
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
class MessageEvent {
|
||||||
|
public:
|
||||||
|
bool m_decline;
|
||||||
|
|
||||||
|
void setDecline(bool decline) { m_decline = decline; }
|
||||||
|
private:
|
||||||
|
};
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include <client/Minecraft.h>
|
#include <client/Minecraft.h>
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
|
#include "MessageEvent.hpp"
|
||||||
|
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
@@ -79,6 +80,11 @@ void PluginsManager::registerTypes() {
|
|||||||
"setHp", &LuaPlayer::setHp
|
"setHp", &LuaPlayer::setHp
|
||||||
);
|
);
|
||||||
|
|
||||||
|
m_lua.new_usertype<MessageEvent>(
|
||||||
|
"MessageEvent",
|
||||||
|
"setDecline", &MessageEvent::setDecline
|
||||||
|
);
|
||||||
|
|
||||||
m_lua["Server"] = &m_srv;
|
m_lua["Server"] = &m_srv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user