Compare commits

...

4 Commits
0.2 ... main

Author SHA1 Message Date
978edd889f Update README.md 2025-06-03 10:59:01 +00:00
6c872cdd10 0.2.1 2025-05-28 15:56:48 +00:00
a06a87c2f9 Bugfix 2025-05-28 15:56:29 +00:00
0e412a660f Update README.md 2025-05-26 12:51:49 +00:00
3 changed files with 21 additions and 6 deletions

View File

@ -1,3 +1,18 @@
# Exec # Exec
Makes possible to run external scripts via commands. Exec is a Minecraft server plugin that makes possible to run external scripts via commands. The scripts can be written with Bash or Python for example and the code changes don't need a server restart.
[PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) is required. You might also want to use [mcrcon](https://github.com/Tiiffi/mcrcon) for script output.
## Config
commands:
examplecommand:
script: "/path/to/your/script %player_name% %args%"
permission: "exec.example"
The Exec config looks like this. You can use the following placeholders:
* %args% means all arguments provided to the command.
* %arg_1%, %arg_2% can be used to read arguments too.
* PlaceholderAPI is supported (and usually required). %player_name% is the most useful one.
You can use `/exec reload` to reload the config.

View File

@ -1,6 +1,6 @@
name: Exec name: Exec
description: Makes possible to run external scripts via commands. description: Makes possible to run external scripts via commands.
version: 0.2 version: 0.2.1
author: Ardakaz author: Ardakaz
main: net.ardakaz.exec.Exec main: net.ardakaz.exec.Exec
api-version: 1.21 api-version: 1.21

View File

@ -67,16 +67,16 @@ public class Exec extends JavaPlugin {
return true; return true;
} }
// Placeholders to script
String cmdToRun = PlaceholderAPI.setPlaceholders(player, script);
// Args to script // Args to script
cmdToRun = cmdToRun.replace("%args%", execArgs); String cmdToRun = script.replace("%args%", execArgs);
for(int i = 0; i < args.length; ++i) { for(int i = 0; i < args.length; ++i) {
cmdToRun = cmdToRun.replace("%arg_" + (i + 1) + "%", args[i]); cmdToRun = cmdToRun.replace("%arg_" + (i + 1) + "%", args[i]);
} }
// Placeholders to script
cmdToRun = PlaceholderAPI.setPlaceholders(player, cmdToRun);
// Execution // Execution
getLogger().info("Executing " + cmdToRun); getLogger().info("Executing " + cmdToRun);
try { try {