Skip to content

Commit f200846

Browse files
committed
Add console commands
1 parent 30fae39 commit f200846

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
}
55

66
group = "de.pascalpex"
7-
version = "2.0"
7+
version = "2.1"
88

99
repositories {
1010
mavenCentral()

src/main/java/de/pascalpex/pexnpc/commands/subcommands/CmdSubcommand.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ public int run(CommandContext<CommandSourceStack> context) {
1616
PlaceableNPC placeableNPC = context.getArgument("npc", PlaceableNPC.class);
1717
String cmd = StringArgumentType.getString(context, "cmd");
1818

19+
if(cmd.startsWith("console:")) {
20+
if(!sender.hasPermission("pexnpc.consolecommands")) {
21+
sender.sendMessage(MessageHandler.errorMessage("You are not allowed to set console commands"));
22+
return SINGLE_SUCCESS;
23+
}
24+
}
25+
1926
placeableNPC.getNpc().setCommand(cmd);
2027
NPCData.saveNpc(placeableNPC.getNpc());
2128

src/main/java/de/pascalpex/pexnpc/events/listener/NPCClickListener.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,14 @@ public void onNPCClick(ClickNPCEvent event) {
7373

7474
String cmd = placeableNPC.getNpc().getCommand();
7575
if (cmd != null && !cmd.isBlank()) {
76+
if(cmd.startsWith("console:")) {
77+
cmd = cmd.substring(8).replace("%player_name%", player.getName());
78+
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd);
79+
if (Config.getLogCommands()) {
80+
Bukkit.getConsoleSender().sendMessage(MessageHandler.prefixedMini("<aqua>Player <gold>" + player.getName() + " <aqua>used NPC with ID <gold>" + placeableNPC.getNpc().getId() + " <aqua>to dispatch console command: <gold>" + cmd));
81+
}
82+
return;
83+
}
7684
if (Bukkit.getPluginCommand("server") == null && cmd.toLowerCase().startsWith("server")) {
7785
BungeeMessageSender bungeeMessageSender = new BungeeMessageSender();
7886
bungeeMessageSender.sendMessage("Connect", cmd.split(" ")[1], player);

src/main/resources/paper-plugin.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
name: PexNPC
2-
version: '2.0'
2+
version: '2.1'
33
author: Pascalpex
44
prefix: PexNPC
55
main: de.pascalpex.pexnpc.PexNPC
66
description: Lightweight, packet based NPC plugin with fast updates
7-
api-version: '1.21.5'
7+
api-version: '1.21.8'
88
bootstrapper: de.pascalpex.pexnpc.PexNPCBootstrap
99
loader: de.pascalpex.pexnpc.PexNPCLoader
1010
dependencies:

0 commit comments

Comments
 (0)