Skip to content

Commit

Permalink
feat: add talkas
Browse files Browse the repository at this point in the history
  • Loading branch information
engsr6982 committed Mar 14, 2024
1 parent 134dfa7 commit 462fa53
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 1 deletion.
40 changes: 40 additions & 0 deletions src/Command/Command.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,14 @@
#include <ll/api/i18n/I18n.h>
#include <ll/api/plugin/NativePlugin.h>
#include <ll/api/service/Bedrock.h>
#include <ll/api/service/PlayerInfo.h>
#include <ll/api/service/Service.h>
#include <ll/api/utils/HashUtils.h>
#include <mc/entity/utilities/ActorType.h>
#include <mc/network/packet/LevelChunkPacket.h>
#include <mc/network/packet/TextPacket.h>
#include <mc/server/ServerLevel.h>
#include <mc/server/ServerPlayer.h>
#include <mc/server/commands/CommandOrigin.h>
#include <mc/server/commands/CommandOriginType.h>
#include <mc/server/commands/CommandOutput.h>
Expand Down Expand Up @@ -158,6 +163,41 @@ bool regCommand() {
}
}>();

// tools talkas <Player> [msg]
cmd.overload<Args_Kick>()
.text("talkas")
.required("player")
.required("message")
.execute<[&](CommandOrigin const& origin, CommandOutput& output, Args_Kick const& param) {
CHECK_COMMAND_TYPE(origin.getOriginType(), CommandOriginType::Player);
Actor* entity = origin.getEntity();
if (entity) {
auto& player = *static_cast<Player*>(entity);
if (player.isOperator()) {
auto item = param.player.results(origin).data;
for (Player* target : *item) {
if (target) {
TextPacket pkt = TextPacket::createChat(
target->getName(),
param.message.empty() ? "" : param.message,
target->getXuid(),
""
);
if (ll::service::getLevel().has_value()) {
ll::service::getLevel()->forEachPlayer([&pkt](Player& player) {
player.sendNetworkPacket(pkt); // send to all player
return true;
});
}
player.sendMessage("try talkas player: {}"_tr(target->getRealName()));
}
}
} else {
output.error("This command is available to [OP] only!"_tr());
}
}
}>();


return true;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Config/Config.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ struct Configs {

std::string language = "zh_CN";
struct Command {
std::string commandName = "tools";
std::string commandName = "tools";
std::string commandDescription = "LeviOPTools";
} command;
};
Expand Down

0 comments on commit 462fa53

Please sign in to comment.