From fc6ec362676f434b284aa1de93c7ea48425331cb Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Mon, 13 Jun 2016 20:30:10 +0200 Subject: [PATCH] Added files --- .classpath | 7 ++ .gitignore | 1 + .project | 17 ++++ .settings/org.eclipse.jdt.core.prefs | 11 +++ plugin.yml | 5 ++ .../norbipeti/onecommandhelper/Commands.java | 79 +++++++++++++++++++ .../onecommandhelper/PluginMain.java | 12 +++ 7 files changed, 132 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 plugin.yml create mode 100644 src/io/github/norbipeti/onecommandhelper/Commands.java create mode 100644 src/io/github/norbipeti/onecommandhelper/PluginMain.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..ca0e212 --- /dev/null +++ b/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/.project b/.project new file mode 100644 index 0000000..a7f408c --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + OneCommandHelper + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..bb35fa0 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/plugin.yml b/plugin.yml new file mode 100644 index 0000000..56df368 --- /dev/null +++ b/plugin.yml @@ -0,0 +1,5 @@ +name: OneCommandHelper +main: io.github.norbipeti.onecommandhelper.PluginMain +version: 1.0 +commands: + occ: \ No newline at end of file diff --git a/src/io/github/norbipeti/onecommandhelper/Commands.java b/src/io/github/norbipeti/onecommandhelper/Commands.java new file mode 100644 index 0000000..d4de08e --- /dev/null +++ b/src/io/github/norbipeti/onecommandhelper/Commands.java @@ -0,0 +1,79 @@ +package io.github.norbipeti.onecommandhelper; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.CommandBlock; +import org.bukkit.command.BlockCommandSender; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class Commands implements CommandExecutor +{ + private final String[] replacecmds = { "achievement", "ban", "ban", + "ban-ip", "banlist", "blockdata", "clear", "clone", "debug", + "defaultgamemode", "deop", "difficulty", "effect", "enchant", + "entitydata", "execute", "fill", "gamemode", "gamerule", "give", + "help", "kick", "kill", "list", "me", "op", "pardon", "particle", + "playsound", "publish", "replaceitem", "save", "save-all", + "save-off", "save-on", "say", "scoreboard", "seed", "setblock", + "setidletimeout", "setworldspawn", "spawnpoint", "spreadplayers", + "stats", "stop", "stopsound", "summon", "teleport", "tell", + "tellraw", "testfor", "testforblock", "testforblocks", "time", + "title", "toggledownfall", "tp", "trigger", "weather", "whitelist", + "worldborder", "xp", "commands", "banip", "broadcast", "home", + "setspawn", "solid", "unban" }; + + @Override + public boolean onCommand(CommandSender sender, Command cmd, String alias, + String[] args) + { + //System.out.println("A"); + StringBuilder acmdb = new StringBuilder("minecraft:execute @p ~ ~ ~"); + if (sender != Bukkit.getConsoleSender() + && !(sender instanceof BlockCommandSender)) + { + sender.sendMessage("§cThis command can only be used from the console or a command block."); + //return true; + Block block = ((Player) sender).getLocation().subtract(0, 1, 0) + .getBlock(); + if (block.getType() != Material.COMMAND) + { + sender.sendMessage("§cError! Block underneath must be command block! Found " + + block.getType()); + return true; + } + CommandBlock cmdblock = (CommandBlock) block.getState(); + acmdb.append(" ").append(cmdblock.getCommand()); + } + //System.out.println("B"); + else + { + if (args.length == 0) + { + sender.sendMessage("§cUsage: /" + alias + " "); + return true; //yolo + } + //System.out.println("C"); + for (String arg : args) + acmdb.append(" ").append(arg); + } + //System.out.println("D"); + String acmd = acmdb.toString(); + //System.out.println("E"); + StringBuilder replace = new StringBuilder("(" + replacecmds[0]); + for (int i = 1; i < replacecmds.length; i++) + replace.append("|" + replacecmds[i]); + replace.append(")"); + //System.out.println("F"); + acmd = acmd.replaceAll("Command:\\/" + replace, "/minecraft:$1") + .replaceAll("Command\\:" + replace, "Command:minecraft:$1") + .replaceAll(" " + replace + " ", " minecraft:$1 "); + //System.out.println(acmd); + //System.out.println(replace); + Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), acmd); + return true; + } +} diff --git a/src/io/github/norbipeti/onecommandhelper/PluginMain.java b/src/io/github/norbipeti/onecommandhelper/PluginMain.java new file mode 100644 index 0000000..5828709 --- /dev/null +++ b/src/io/github/norbipeti/onecommandhelper/PluginMain.java @@ -0,0 +1,12 @@ +package io.github.norbipeti.onecommandhelper; + +import org.bukkit.plugin.java.JavaPlugin; + +public class PluginMain extends JavaPlugin +{ + @Override + public void onEnable() { + //getServer().getPluginManager().registerEvents(new CommandListener(), this); + getCommand("occ").setExecutor(new Commands()); + } +}