Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pluginManager.register("Energyxxer's Utility Pack",function(lib){
- const SCORE_CHAR_LIMIT = 16;
- var block = lib.getBlock();
- var command = block.command + " ";
- if(command.startsWith("$assignID ")) {
- var usage = "$assignID <selector> <objective> [buffered]";
- command = command.substring("$assignID ".length).trim();
- var args = command.split(" ");
- //Argument variables:
- var selectorRaw = args[0];
- var objective = args[1];
- var buffered = true;
- //Make sure nothing is missing
- if(args[0] == null || args[0].length == 0) {
- lib.throw("Error: Selector not found in function at line " + lib.getLineNumber() + ". Usage: " + usage);
- lib.break();
- return;
- }
- if(args[1] == null || args[1].length == 0) {
- lib.throw("Error: Scoreboard objective not found in function at line " + lib.getLineNumber() + ". Usage: " + usage);
- lib.break();
- return;
- }
- //Validate buffered
- if(args[2] != null) {
- if(["true","false"].contains(args[2])) {
- buffered = [true,false][["true","false"].indexOf(args[2])];
- } else {
- lib.throw("Error: \"" + args[2] + "\" is neither true nor false! At line " + lib.getLineNumber() + ". Usage: " + usage);
- lib.break();
- return;
- }
- }
- //Validate selector and objective
- var selector = new Selector(selectorRaw);
- if(!selector.valid) {
- lib.throw("Error: \"" + selectorRaw + "\" is not a valid selector! At line " + lib.getLineNumber() + ". Usage: " + usage);
- lib.break();
- return;
- }
- if(objective.length > SCORE_CHAR_LIMIT) {
- lib.throw("Error: \"" + objective + "\" is not a valid objective name; it must not exceed " + SCORE_CHAR_LIMIT + " characters of length. At line " + lib.getLineNumber() + ". Usage: " + usage);
- lib.break();
- return;
- }
- //All checking done, proceed to generate commands.
- lib.newCommand("scoreboard players add " + selector.toString() + " " + objective + " 0", block.type, block.conditional, block.auto);
- var s1 = selector.clone();
- s1.args["score_" + objective] = "0";
- if(buffered) s1.args["c"] = "1";
- lib.newCommand("scoreboard players tag " + s1.toString() + " add assign_" + objective, "Chain", false, true);
- var s2 = selector.clone();
- s2.args["tag"] = "assign_" + objective;
- lib.newCommand("scoreboard players operation " + s2.toString() + " " + objective + " > * " + objective, "Chain", false, true);
- lib.newCommand("scoreboard players add " + s2.toString() + " " + objective + " 1", "Chain", false, true);
- lib.newCommand("scoreboard players tag " + s2.toString() + " remove assign_" + objective, "Chain", false, true);
- lib.skip();
- /*scoreboard players add @a r_playerId 0
- scoreboard players tag @e[score_r_playerId=0,c=1] add r_assignId
- scoreboard players operation @e[tag=r_assignId] r_playerId > * r_playerId
- scoreboard players add @e[tag=r_assignId] r_playerId 1
- scoreboard players tag @e[tag=r_assignId] remove r_assignId*/
- }
- });
Add Comment
Please, Sign In to add comment