From 301c5a766b5809d282f934d2339920b23177c855 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 15 Mar 2016 22:15:57 +0100 Subject: [PATCH] 1.0h Click command --- plugin.yml | 3 ++ .../massivecraft/massivecore/MassiveCore.java | 4 +- .../massivecore/MassiveCoreMConf.java | 11 ++++ .../massivecore/MassiveCorePerm.java | 1 + .../command/massivecore/CmdMassiveCore.java | 2 + .../massivecore/CmdMassiveCoreClick.java | 51 +++++++++++++++++++ 6 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreClick.java diff --git a/plugin.yml b/plugin.yml index 39d71042..46c97e1b 100644 --- a/plugin.yml +++ b/plugin.yml @@ -41,6 +41,7 @@ permissions: massivecore.buffer.add: {description: add to buffer, default: false} massivecore.buffer.whitespace: {description: add whitespace to buffer, default: false} massivecore.cmdurl: {description: run all lines of url content, default: false} + massivecore.click: {description: click, default: false} # misc massivecore.notpdelay: {description: teleport without delay, default: false} massivecore.variable.book: {description: replace ***book*** with content of book in your hand, default: false} @@ -82,6 +83,7 @@ permissions: massivecore.buffer.add: true massivecore.buffer.whitespace: true massivecore.cmdurl: true + massivecore.click: true massivecore.notpdelay: true massivecore.variable.book: true massivecore.variable.buffer: true @@ -129,6 +131,7 @@ permissions: children: massivecore.basecommand: true massivecore.hearsound: true + massivecore.click: true massivecore.version: true massivecore.kit.default: default: true diff --git a/src/com/massivecraft/massivecore/MassiveCore.java b/src/com/massivecraft/massivecore/MassiveCore.java index 889621b5..10d04275 100644 --- a/src/com/massivecraft/massivecore/MassiveCore.java +++ b/src/com/massivecraft/massivecore/MassiveCore.java @@ -41,6 +41,7 @@ import com.massivecraft.massivecore.collections.MassiveTreeSet; import com.massivecraft.massivecore.collections.MassiveTreeSetDef; import com.massivecraft.massivecore.command.massivecore.CmdMassiveCore; import com.massivecraft.massivecore.command.massivecore.CmdMassiveCoreBuffer; +import com.massivecraft.massivecore.command.massivecore.CmdMassiveCoreClick; import com.massivecraft.massivecore.command.massivecore.CmdMassiveCoreCmdurl; import com.massivecraft.massivecore.command.massivecore.CmdMassiveCoreStore; import com.massivecraft.massivecore.command.massivecore.CmdMassiveCoreUsys; @@ -218,7 +219,8 @@ public class MassiveCore extends MassivePlugin CmdMassiveCoreUsys.get(), CmdMassiveCoreStore.get(), CmdMassiveCoreBuffer.get(), - CmdMassiveCoreCmdurl.get() + CmdMassiveCoreCmdurl.get(), + CmdMassiveCoreClick.get() ); // Start the examine threads diff --git a/src/com/massivecraft/massivecore/MassiveCoreMConf.java b/src/com/massivecraft/massivecore/MassiveCoreMConf.java index 8efdc850..49889118 100644 --- a/src/com/massivecraft/massivecore/MassiveCoreMConf.java +++ b/src/com/massivecraft/massivecore/MassiveCoreMConf.java @@ -88,12 +88,22 @@ public class MassiveCoreMConf extends Entity return getMongoDbWriteConcern(this.catchingMongoDbErrorsOnDelete); } + // -------------------------------------------- // + // VARIABLES + // -------------------------------------------- // + public String variableBook = "***book***"; public boolean usingVariableBook = true; public String variableBuffer = "***buffer***"; public boolean usingVariableBuffer = true; + // -------------------------------------------- // + // CLICK COMMAND + // -------------------------------------------- // + + public SoundEffect commandClickSound = SoundEffect.valueOf("UI_BUTTON_CLICK", 1.0f, 1.0f); + // -------------------------------------------- // // MSTORE CONFIGURATON // -------------------------------------------- // @@ -103,4 +113,5 @@ public class MassiveCoreMConf extends Entity public volatile long millisBetweenRemotePollWithPusher = TimeUnit.MILLIS_PER_MINUTE * 1; public boolean warnOnLocalAlter = false; + } diff --git a/src/com/massivecraft/massivecore/MassiveCorePerm.java b/src/com/massivecraft/massivecore/MassiveCorePerm.java index 721dbdd0..c0a37871 100644 --- a/src/com/massivecraft/massivecore/MassiveCorePerm.java +++ b/src/com/massivecraft/massivecore/MassiveCorePerm.java @@ -44,6 +44,7 @@ public enum MassiveCorePerm NOTPDELAY("notpdelay"), VARIABLE_BOOK("variable.book"), VARIABLE_BUFFER("variable.buffer"), + CLICK("click"), // END OF LIST ; diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCore.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCore.java index b4a00034..48d81d3d 100644 --- a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCore.java +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCore.java @@ -29,6 +29,7 @@ public class CmdMassiveCore extends MassiveCommand public CmdMassiveCoreHearsound cmdMassiveCoreHearsound = new CmdMassiveCoreHearsound(); public CmdMassiveCoreBuffer cmdMassiveCoreBuffer = new CmdMassiveCoreBuffer(); public CmdMassiveCoreCmdurl cmdMassiveCoreCmdurl = new CmdMassiveCoreCmdurl(); + public CmdMassiveCoreClick cmdMassiveCoreClick = new CmdMassiveCoreClick(); public MassiveCommandVersion cmdMassiveCoreVersion = new MassiveCommandVersion(MassiveCore.get(), MassiveCorePerm.VERSION.node, "v", "version"); // -------------------------------------------- // @@ -45,6 +46,7 @@ public class CmdMassiveCore extends MassiveCommand this.addChild(this.cmdMassiveCoreHearsound); this.addChild(this.cmdMassiveCoreBuffer); this.addChild(this.cmdMassiveCoreCmdurl); + this.addChild(this.cmdMassiveCoreClick); this.addChild(this.cmdMassiveCoreVersion); // Requirements diff --git a/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreClick.java b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreClick.java new file mode 100644 index 00000000..56fdb271 --- /dev/null +++ b/src/com/massivecraft/massivecore/command/massivecore/CmdMassiveCoreClick.java @@ -0,0 +1,51 @@ +package com.massivecraft.massivecore.command.massivecore; + +import com.massivecraft.massivecore.MassiveCoreMConf; +import com.massivecraft.massivecore.MassiveCorePerm; +import com.massivecraft.massivecore.MassiveException; +import com.massivecraft.massivecore.command.MassiveCommand; +import com.massivecraft.massivecore.command.requirement.RequirementHasPerm; +import com.massivecraft.massivecore.command.type.TypeStringCommand; +import com.massivecraft.massivecore.mixin.Mixin; + +public class CmdMassiveCoreClick extends MassiveCommand +{ + // -------------------------------------------- // + // INSTANCE + // -------------------------------------------- // + + private static CmdMassiveCoreClick i = new CmdMassiveCoreClick(); + public static CmdMassiveCoreClick get() { return i; } + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public CmdMassiveCoreClick() + { + // Aliases + this.addAliases("click"); + + // Parameters + this.addParameter(TypeStringCommand.get(), "command", true).setDesc("the command to perform"); + + // Requirements + this.addRequirements(RequirementHasPerm.get(MassiveCorePerm.CLICK.node)); + } + + // -------------------------------------------- // + // OVERRIDE + // -------------------------------------------- // + + @Override + public void perform() throws MassiveException + { + String command = this.readArg(); + if ( ! senderIsConsole) + { + MassiveCoreMConf.get().commandClickSound.run(me); + } + Mixin.dispatchCommand(sender, command); + } + +}