diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index 4d86a0d8d..d3d943729 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -107,7 +107,7 @@ public class Iris extends VolmitPlugin implements Listener { private void enable() { services = new KMap<>(); initialize("com.volmit.iris.core.service").forEach((i) -> services.put((Class) i.getClass(), (IrisService) i)); - + audiences = BukkitAudiences.create(this); sender = new VolmitSender(Bukkit.getConsoleSender()); sender.setTag(getTag()); diff --git a/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectAnalyze.java b/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectAnalyze.java index 6e8252f45..88e541d0a 100644 --- a/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectAnalyze.java +++ b/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectAnalyze.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.core.command.object; import com.volmit.iris.Iris; diff --git a/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenPause.java b/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenPause.java index 6dac3c1a5..b02d36559 100644 --- a/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenPause.java +++ b/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenPause.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.core.command.pregen; import com.volmit.iris.Iris; diff --git a/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenStart.java b/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenStart.java index 4a5fdd9ec..d85badbb4 100644 --- a/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenStart.java +++ b/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenStart.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.core.command.pregen; import com.volmit.iris.Iris; diff --git a/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenStop.java b/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenStop.java index 13312b0db..9b2041c56 100644 --- a/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenStop.java +++ b/src/main/java/com/volmit/iris/core/command/pregen/CommandIrisPregenStop.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.core.command.pregen; import com.volmit.iris.Iris; diff --git a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioBeautify.java b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioBeautify.java index c27bbc6f8..229ef0740 100644 --- a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioBeautify.java +++ b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioBeautify.java @@ -74,6 +74,7 @@ public class CommandIrisStudioBeautify extends MortarCommand { return true; } + private int clean(VolmitSender s, File clean) { int c = 0; if (clean.isDirectory()) { @@ -131,7 +132,6 @@ public class CommandIrisStudioBeautify extends MortarCommand { } - @Override protected String getArgsUsage() { return "[project]"; diff --git a/src/main/java/com/volmit/iris/core/command/what/CommandIrisWhatFeatures.java b/src/main/java/com/volmit/iris/core/command/what/CommandIrisWhatFeatures.java index f72adaab8..bd93f2018 100644 --- a/src/main/java/com/volmit/iris/core/command/what/CommandIrisWhatFeatures.java +++ b/src/main/java/com/volmit/iris/core/command/what/CommandIrisWhatFeatures.java @@ -21,7 +21,6 @@ package com.volmit.iris.core.command.what; import com.google.gson.Gson; import com.volmit.iris.Iris; import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.object.feature.IrisFeaturePositional; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.json.JSONObject; diff --git a/src/main/java/com/volmit/iris/core/command/world/CommandIrisCreate.java b/src/main/java/com/volmit/iris/core/command/world/CommandIrisCreate.java index 367cac287..d7474a385 100644 --- a/src/main/java/com/volmit/iris/core/command/world/CommandIrisCreate.java +++ b/src/main/java/com/volmit/iris/core/command/world/CommandIrisCreate.java @@ -20,25 +20,16 @@ package com.volmit.iris.core.command.world; import com.volmit.iris.Iris; import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.core.tools.IrisWorldCreator; import com.volmit.iris.engine.object.dimensional.IrisDimension; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.exceptions.IrisException; -import com.volmit.iris.util.format.Form; import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.VolmitSender; import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.O; -import org.bukkit.Bukkit; -import org.bukkit.World; -import org.bukkit.WorldCreator; import java.io.File; import java.util.Random; -import java.util.concurrent.atomic.AtomicReference; public class CommandIrisCreate extends MortarCommand { public CommandIrisCreate() { @@ -128,7 +119,6 @@ public class CommandIrisCreate extends MortarCommand { String finalDimensionName = dimensionName; - long finalSeed = seed; J.a(() -> { try { diff --git a/src/main/java/com/volmit/iris/core/decrees/DecIris.java b/src/main/java/com/volmit/iris/core/decrees/DecIris.java index a2a1c0538..ff15a8c5d 100644 --- a/src/main/java/com/volmit/iris/core/decrees/DecIris.java +++ b/src/main/java/com/volmit/iris/core/decrees/DecIris.java @@ -32,8 +32,7 @@ import com.volmit.iris.util.format.C; import java.io.File; @Decree(name = "irisd", aliases = {"ird"}, description = "Basic Command") -public class DecIris implements DecreeExecutor -{ +public class DecIris implements DecreeExecutor { private DecStudio studio; private DecPregen pregen; @@ -41,19 +40,19 @@ public class DecIris implements DecreeExecutor @Decree(description = "Create a new world", aliases = "+") public void create( @Param(aliases = "world-name", description = "The name of the world to create", defaultValue = "IrisWorld") - String name, + String name, @Param(aliases = "dimension", description = "The dimension type to create the world with", defaultValue = "overworld") - IrisDimension type, + IrisDimension type, @Param(description = "The seed to generate the world with", defaultValue = "1337") - long seed - ){ + long seed + ) { if (name.equals("iris")) { sender().sendMessage(C.RED + "You cannot use the world name \"iris\" for creating worlds as Iris uses this directory for studio worlds."); sender().sendMessage(C.RED + "May we suggest the name \"IrisWorld\" instead?"); return; } - if (new File(name).exists()){ + if (new File(name).exists()) { sender().sendMessage(C.RED + "That folder already exists!"); return; } @@ -66,7 +65,7 @@ public class DecIris implements DecreeExecutor .sender(sender()) .studio(false) .create(); - } catch (Throwable e){ + } catch (Throwable e) { sender().sendMessage(C.RED + "Exception raised during creation. See the console for more details."); Iris.error("Exception raised during world creation: " + e.getMessage()); Iris.reportError(e); @@ -77,18 +76,18 @@ public class DecIris implements DecreeExecutor } @Decree(description = "Print version information") - public void version(){ + public void version() { sender().sendMessage("Iris v" + Iris.instance.getDescription().getVersion() + " by Volmit Software"); } @Decree(description = "Set aura spins") public void aura( @Param(description = "The h color value", defaultValue = "-20") - int h, + int h, @Param(description = "The s color value", defaultValue = "7") - int s, + int s, @Param(description = "The b color value", defaultValue = "8") - int b + int b ) { IrisSettings.get().getGeneral().setSpinh(h); IrisSettings.get().getGeneral().setSpins(s); @@ -100,22 +99,22 @@ public class DecIris implements DecreeExecutor @Decree(description = "Bitwise calculations") public void bitwise( @Param(description = "The first value to run calculations on") - int value1, + int value1, @Param(description = "The operator: | & ^ >> << %") - String operator, + String operator, @Param(description = "The second value to run calculations on") - int value2 + int value2 ) { Integer v = null; - switch(operator) { + switch (operator) { case "|" -> v = value1 | value2; case "&" -> v = value1 & value2; case "^" -> v = value1 ^ value2; case "%" -> v = value1 % value2; case ">>" -> v = value1 >> value2; case "<<" -> v = value1 << value2; - }; - if (v == null){ + } + if (v == null) { sender().sendMessage(C.RED + "The operator you entered: (" + operator + ") is invalid!"); return; } @@ -125,7 +124,7 @@ public class DecIris implements DecreeExecutor @Decree(description = "Toggle debug") public void debug( @Param(name = "on", description = "Whether or not debug should be on", defaultValue = "true") - boolean on + boolean on ) { IrisSettings.get().getGeneral().setDebug(on); } @@ -133,13 +132,13 @@ public class DecIris implements DecreeExecutor @Decree(description = "Download a project.") public void download( @Param(name = "pack", description = "The pack to download", defaultValue = "overworld", aliases = "project") - String pack, + String pack, @Param(name = "branch", description = "The branch to download from", defaultValue = "master") - String branch, + String branch, @Param(name = "trim", description = "Whether or not to download a trimmed version (do not enable when editing)", defaultValue = "false") - boolean trim, + boolean trim, @Param(name = "overwrite", description = "Whether or not to overwrite the pack with the downloaded one", aliases = "force", defaultValue = "false") - boolean overwrite + boolean overwrite ) { sender().sendMessage(C.GREEN + "Downloading pack: " + pack + "/" + branch + (trim ? " trimmed" : "")); Iris.service(StudioSVC.class).downloadSearch(sender(), "IrisDimensions/" + pack + "/" + branch, trim, overwrite); @@ -147,7 +146,7 @@ public class DecIris implements DecreeExecutor @Decree(description = "Get metrics for your world", aliases = "measure", origin = DecreeOrigin.PLAYER) public void metrics() { - if (!IrisToolbelt.isIrisWorld(world())){ + if (!IrisToolbelt.isIrisWorld(world())) { sender().sendMessage(C.RED + "You must be in an Iris world"); return; } diff --git a/src/main/java/com/volmit/iris/core/decrees/DecPregen.java b/src/main/java/com/volmit/iris/core/decrees/DecPregen.java index 1a97ed063..8dc6f49a6 100644 --- a/src/main/java/com/volmit/iris/core/decrees/DecPregen.java +++ b/src/main/java/com/volmit/iris/core/decrees/DecPregen.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.core.decrees; import com.volmit.iris.Iris; @@ -9,7 +27,6 @@ import com.volmit.iris.util.decree.annotations.Decree; import com.volmit.iris.util.decree.annotations.Param; import com.volmit.iris.util.format.C; import com.volmit.iris.util.math.Position2; -import org.bukkit.Location; import org.bukkit.World; import org.bukkit.util.Vector; @@ -17,12 +34,12 @@ import org.bukkit.util.Vector; public class DecPregen implements DecreeExecutor { @Decree(description = "Pregenerate a world") public void start( - @Param(description = "The world to pregen", contextual = true) - World world, - @Param(description = "The radius of the pregen in blocks", aliases = "size") - int radius, - @Param(aliases = "middle", description = "The center location of the pregen. Use \"me\" for your current location", defaultValue = "0,0") - Vector center + @Param(description = "The world to pregen", contextual = true) + World world, + @Param(description = "The radius of the pregen in blocks", aliases = "size") + int radius, + @Param(aliases = "middle", description = "The center location of the pregen. Use \"me\" for your current location", defaultValue = "0,0") + Vector center ) { try { IrisToolbelt.pregenerate(PregenTask @@ -40,7 +57,7 @@ public class DecPregen implements DecreeExecutor { } @Decree(description = "Stop the active pregeneration task", aliases = "x") - public void stop(){ + public void stop() { if (PregeneratorJob.shutdownInstance()) { sender().sendMessage(C.GREEN + "Stopped pregeneration task"); } else { diff --git a/src/main/java/com/volmit/iris/core/decrees/DecSettings.java b/src/main/java/com/volmit/iris/core/decrees/DecSettings.java index b7efbc37f..fe05846b7 100644 --- a/src/main/java/com/volmit/iris/core/decrees/DecSettings.java +++ b/src/main/java/com/volmit/iris/core/decrees/DecSettings.java @@ -20,7 +20,6 @@ package com.volmit.iris.core.decrees; import com.volmit.iris.util.decree.DecreeExecutor; -public class DecSettings implements DecreeExecutor -{ +public class DecSettings implements DecreeExecutor { } diff --git a/src/main/java/com/volmit/iris/core/decrees/DecStudio.java b/src/main/java/com/volmit/iris/core/decrees/DecStudio.java index 84fe3d224..8c899e58f 100644 --- a/src/main/java/com/volmit/iris/core/decrees/DecStudio.java +++ b/src/main/java/com/volmit/iris/core/decrees/DecStudio.java @@ -110,8 +110,7 @@ public class DecStudio implements DecreeExecutor { @Param(description = "The name of this new Iris Project.") String name, @Param(description = "Copy the contents of an existing project in your packs folder and use it as a template in this new project.", contextual = true) - IrisDimension template) - { + IrisDimension template) { if (template != null) { Iris.service(StudioSVC.class).create(sender(), name, template.getLoadKey()); } else { @@ -147,8 +146,7 @@ public class DecStudio implements DecreeExecutor { sender().sendMessage("Files: " + files.size()); - if(fixIds) - { + if (fixIds) { QueueJob r = new QueueJob<>() { @Override public void execute(File f) { @@ -173,8 +171,7 @@ public class DecStudio implements DecreeExecutor { jobs.add(r); } - if(beautify) - { + if (beautify) { QueueJob r = new QueueJob<>() { @Override public void execute(File f) { @@ -197,8 +194,7 @@ public class DecStudio implements DecreeExecutor { jobs.add(r); } - if(rewriteObjects) - { + if (rewriteObjects) { QueueJob q = new QueueJob<>() { @Override public void execute(Runnable runnable) { @@ -214,7 +210,7 @@ public class DecStudio implements DecreeExecutor { IrisData data = new IrisData(Iris.service(StudioSVC.class).getWorkspaceFolder(project.getLoadKey())); for (String f : data.getObjectLoader().getPossibleKeys()) { - CompletableFuture gg = burst.complete(() ->{ + CompletableFuture gg = burst.complete(() -> { File ff = data.getObjectLoader().findFile(f); IrisObject oo = new IrisObject(0, 0, 0); try { @@ -265,7 +261,7 @@ public class DecStudio implements DecreeExecutor { @Decree(description = "Edit the biome you are currently in", aliases = {"ebiome", "eb"}, origin = DecreeOrigin.PLAYER) public void editbiome( @Param(contextual = true, description = "The biome to edit") - IrisBiome biome + IrisBiome biome ) { if (noStudio()) return; @@ -303,7 +299,7 @@ public class DecStudio implements DecreeExecutor { IrisGenerator generator, @Param(description = "The seed to generate with", defaultValue = "12345") long seed - ){ + ) { if (noGUI()) return; sender().sendMessage(C.GREEN + "Opening Noise Explorer!"); @@ -324,13 +320,13 @@ public class DecStudio implements DecreeExecutor { IrisBiome biome, @Param(description = "The region to find", contextual = true) IrisRegion region - ){ - if (!IrisToolbelt.isIrisWorld(world())){ + ) { + if (!IrisToolbelt.isIrisWorld(world())) { sender().sendMessage(C.RED + "You must be in an Iris world to use this command!"); return; } - if (biome == null && region == null){ + if (biome == null && region == null) { sender().sendMessage(C.RED + "You must specify a biome or region!"); return; } @@ -373,9 +369,9 @@ public class DecStudio implements DecreeExecutor { @Decree(description = "Show loot if a chest were right here", origin = DecreeOrigin.PLAYER, sync = true) public void loot( @Param(description = "Fast insertion of items in virtual inventory (may cause performance drop)", defaultValue = "false") - boolean fast, + boolean fast, @Param(description = "Whether or not to append to the inventory currently open (if false, clears opened inventory)", defaultValue = "true") - boolean add + boolean add ) { if (noStudio()) return; @@ -384,7 +380,7 @@ public class DecStudio implements DecreeExecutor { try { engine().addItems(true, inv, RNG.r, tables, InventorySlotType.STORAGE, player().getLocation().getBlockX(), player().getLocation().getBlockY(), player().getLocation().getBlockZ(), 1); - } catch (Throwable e){ + } catch (Throwable e) { Iris.reportError(e); sender().sendMessage(C.RED + "Cannot add items to virtual inventory because of: " + e.getMessage()); return; @@ -414,8 +410,7 @@ public class DecStudio implements DecreeExecutor { } @Decree(description = "Render a world map (External GUI)", aliases = "render") - public void map() - { + public void map() { if (noStudio()) return; if (noGUI()) return; @@ -427,20 +422,20 @@ public class DecStudio implements DecreeExecutor { @Decree(description = "Package a dimension into a compressed format", aliases = "package") public void pkg( @Param(name = "dimension", description = "The dimension pack to compress", contextual = true, defaultValue = "overworld") - IrisDimension dimension, + IrisDimension dimension, @Param(name = "obfuscate", description = "Whether or not to obfuscate the pack", defaultValue = "false") - boolean obfuscate, + boolean obfuscate, @Param(name = "minify", description = "Whether or not to minify the pack", defaultValue = "true") - boolean minify - ){ + boolean minify + ) { Iris.service(StudioSVC.class).compilePackage(sender(), dimension.getLoadKey(), obfuscate, minify); } @Decree(description = "Profiles the performance of a dimension", origin = DecreeOrigin.PLAYER) public void profile( @Param(description = "The dimension to profile", contextual = true, defaultValue = "overworld") - IrisDimension dimension - ){ + IrisDimension dimension + ) { File pack = dimension.getLoadFile().getParentFile().getParentFile(); File report = Iris.instance.getDataFile("profile.txt"); IrisProject project = new IrisProject(pack); @@ -627,13 +622,13 @@ public class DecStudio implements DecreeExecutor { @Decree(description = "Summon an Iris Entity", origin = DecreeOrigin.PLAYER) public void summon( @Param(description = "The Iris Entity to spawn") - IrisEntity entity + IrisEntity entity ) { - if (!sender().isPlayer()){ + if (!sender().isPlayer()) { sender().sendMessage(C.RED + "Players only (this is a config error. Ask support to add DecreeOrigin.PLAYER to the command you tried to run)"); return; } - if (IrisToolbelt.isIrisWorld(world())){ + if (IrisToolbelt.isIrisWorld(world())) { sender().sendMessage(C.RED + "You can only spawn entities in Iris worlds!"); return; } @@ -642,13 +637,13 @@ public class DecStudio implements DecreeExecutor { } @Decree(description = "Teleport to the active studio world", aliases = "stp", origin = DecreeOrigin.PLAYER, sync = true) - public void tpstudio(){ - if (!Iris.service(StudioSVC.class).isProjectOpen()){ + public void tpstudio() { + if (!Iris.service(StudioSVC.class).isProjectOpen()) { sender().sendMessage(C.RED + "No studio world is open!"); return; } - if (IrisToolbelt.isIrisWorld(world()) && engine().isStudio()){ + if (IrisToolbelt.isIrisWorld(world()) && engine().isStudio()) { sender().sendMessage(C.RED + "You are already in a studio world!"); return; } @@ -660,9 +655,9 @@ public class DecStudio implements DecreeExecutor { @Decree(description = "Update your dimension project") public void update( - @Param(description = "The dimension to update the workspace of", contextual = true, defaultValue = "overworld") - IrisDimension dimension - ){ + @Param(description = "The dimension to update the workspace of", contextual = true, defaultValue = "overworld") + IrisDimension dimension + ) { if (new IrisProject(dimension.getLoadFile().getParentFile().getParentFile()).updateWorkspace()) { sender().sendMessage(C.GREEN + "Updated Code Workspace for " + dimension.getName()); } else { @@ -682,7 +677,7 @@ public class DecStudio implements DecreeExecutor { boolean look, @Param(description = "Whether or not to show information about the block you are holding", defaultValue = "true") boolean hand - ){ + ) { // Data BlockData handHeld = player().getInventory().getItemInMainHand().getType().createBlockData(); Block targetBlock = player().getTargetBlockExact(128, FluidCollisionMode.NEVER); @@ -708,7 +703,7 @@ public class DecStudio implements DecreeExecutor { } // Target - if (targetBlockData == null){ + if (targetBlockData == null) { sender().sendMessage(C.RED + "Not looking at any block"); } else if (look) { sender().sendMessage(C.GREEN + "" + C.BOLD + "Looked-at block information"); @@ -760,7 +755,7 @@ public class DecStudio implements DecreeExecutor { * @return true if server GUIs are not enabled */ private boolean noGUI() { - if (!IrisSettings.get().isUseServerLaunchedGuis()){ + if (!IrisSettings.get().isUseServerLaunchedGuis()) { sender().sendMessage(C.RED + "You must have server launched GUIs enabled in the settings!"); return true; } @@ -770,16 +765,16 @@ public class DecStudio implements DecreeExecutor { /** * @return true if no studio is open or the player is not in one */ - private boolean noStudio(){ - if (!sender().isPlayer()){ + private boolean noStudio() { + if (!sender().isPlayer()) { sender().sendMessage(C.RED + "Players only (this is a config error. Ask support to add DecreeOrigin.PLAYER to the command you tried to run)"); return true; } - if (!Iris.service(StudioSVC.class).isProjectOpen()){ + if (!Iris.service(StudioSVC.class).isProjectOpen()) { sender().sendMessage(C.RED + "No studio world is open!"); return true; } - if (!engine().isStudio()){ + if (!engine().isStudio()) { sender().sendMessage(C.RED + "You must be in a studio world!"); return true; } @@ -787,9 +782,7 @@ public class DecStudio implements DecreeExecutor { } - - public void files(File clean, KList files) - { + public void files(File clean, KList files) { if (clean.isDirectory()) { for (File i : clean.listFiles()) { files(i, files); diff --git a/src/main/java/com/volmit/iris/core/link/MythicMobsLink.java b/src/main/java/com/volmit/iris/core/link/MythicMobsLink.java index b89c76ccf..1a4287136 100644 --- a/src/main/java/com/volmit/iris/core/link/MythicMobsLink.java +++ b/src/main/java/com/volmit/iris/core/link/MythicMobsLink.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.core.link; import org.bukkit.Bukkit; diff --git a/src/main/java/com/volmit/iris/core/project/IrisPack.java b/src/main/java/com/volmit/iris/core/project/IrisPack.java index b907103d6..f0b06b469 100644 --- a/src/main/java/com/volmit/iris/core/project/IrisPack.java +++ b/src/main/java/com/volmit/iris/core/project/IrisPack.java @@ -18,8 +18,6 @@ package com.volmit.iris.core.project; -import com.volmit.iris.core.project.loader.IrisData; -import com.volmit.iris.engine.object.dimensional.IrisDimension; import lombok.Data; import java.io.File; @@ -28,13 +26,11 @@ import java.io.File; public class IrisPack { private final File folder; - public IrisPack(File folder) - { + public IrisPack(File folder) { this.folder = folder; } - public String getName() - { + public String getName() { return getFolder().getName(); } } diff --git a/src/main/java/com/volmit/iris/core/project/IrisProject.java b/src/main/java/com/volmit/iris/core/project/IrisProject.java index 0601e80e3..3a8cd8535 100644 --- a/src/main/java/com/volmit/iris/core/project/IrisProject.java +++ b/src/main/java/com/volmit/iris/core/project/IrisProject.java @@ -21,11 +21,9 @@ package com.volmit.iris.core.project; import com.google.gson.Gson; import com.volmit.iris.Iris; import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.project.loader.IrisData; import com.volmit.iris.core.project.loader.ResourceLoader; import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.core.tools.IrisWorldCreator; import com.volmit.iris.engine.object.biome.IrisBiome; import com.volmit.iris.engine.object.block.IrisBlockData; import com.volmit.iris.engine.object.dimensional.IrisDimension; @@ -40,7 +38,6 @@ import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KSet; import com.volmit.iris.util.exceptions.IrisException; -import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.io.IO; import com.volmit.iris.util.json.JSONArray; @@ -52,9 +49,8 @@ import com.volmit.iris.util.scheduling.J; import com.volmit.iris.util.scheduling.O; import com.volmit.iris.util.scheduling.PrecisionStopwatch; import lombok.Data; -import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.TextComponent; -import org.bukkit.*; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; import org.zeroturnaround.zip.ZipUtil; import java.awt.*; @@ -448,7 +444,6 @@ public class IrisProject { } - public static int clean(VolmitSender s, File clean) { int c = 0; if (clean.isDirectory()) { diff --git a/src/main/java/com/volmit/iris/core/service/StudioSVC.java b/src/main/java/com/volmit/iris/core/service/StudioSVC.java index 719c1a50d..5d42fb9a9 100644 --- a/src/main/java/com/volmit/iris/core/service/StudioSVC.java +++ b/src/main/java/com/volmit/iris/core/service/StudioSVC.java @@ -35,7 +35,6 @@ import com.volmit.iris.util.json.JSONException; import com.volmit.iris.util.json.JSONObject; import com.volmit.iris.util.plugin.IrisService; import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.GroupedExecutor; import com.volmit.iris.util.scheduling.J; import org.bukkit.Bukkit; import org.bukkit.World; @@ -49,7 +48,7 @@ import java.util.UUID; public class StudioSVC implements IrisService { public static final String LISTING = "https://raw.githubusercontent.com/IrisDimensions/_listing/main/listing-v2.json"; public static final String WORKSPACE_NAME = "packs"; - private KMap cacheListing = null; + private final KMap cacheListing = null; private IrisProject activeProject; private static final AtomicCache counter = new AtomicCache<>(); @@ -323,7 +322,8 @@ public class StudioSVC implements IrisService { public void open(VolmitSender sender, long seed, String dimm) { try { - open(sender,seed, dimm, () -> {}); + open(sender, seed, dimm, () -> { + }); } catch (Exception e) { Iris.reportError(e); sender.sendMessage("Error when creating studio world:"); @@ -448,8 +448,7 @@ public class StudioSVC implements IrisService { create(sender, s, "example"); } - public IrisProject getActiveProject() - { + public IrisProject getActiveProject() { return activeProject; } diff --git a/src/main/java/com/volmit/iris/core/service/WandSVC.java b/src/main/java/com/volmit/iris/core/service/WandSVC.java index 0df9a1989..4a94710e2 100644 --- a/src/main/java/com/volmit/iris/core/service/WandSVC.java +++ b/src/main/java/com/volmit/iris/core/service/WandSVC.java @@ -45,7 +45,6 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.util.BlockVector; import org.bukkit.util.Vector; -import java.awt.*; import java.awt.Color; import java.util.ArrayList; import java.util.Objects; diff --git a/src/main/java/com/volmit/iris/core/tools/IrisCreator.java b/src/main/java/com/volmit/iris/core/tools/IrisCreator.java index 2a5dd22eb..8b719972d 100644 --- a/src/main/java/com/volmit/iris/core/tools/IrisCreator.java +++ b/src/main/java/com/volmit/iris/core/tools/IrisCreator.java @@ -23,13 +23,9 @@ import com.volmit.iris.Iris; import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.pregenerator.PregenTask; import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.common.HeadlessWorld; import com.volmit.iris.engine.object.dimensional.IrisDimension; -import com.volmit.iris.engine.platform.HeadlessGenerator; import com.volmit.iris.engine.platform.PlatformChunkGenerator; import com.volmit.iris.util.exceptions.IrisException; -import com.volmit.iris.util.exceptions.MissingDimensionException; import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.RNG; @@ -38,15 +34,12 @@ import com.volmit.iris.util.scheduling.J; import com.volmit.iris.util.scheduling.O; import lombok.Data; import lombok.experimental.Accessors; -import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.*; import java.io.File; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Consumer; /** * Makes it a lot easier to setup an engine, world, studio or whatever @@ -94,20 +87,17 @@ public class IrisCreator { * @throws IrisException shit happens */ public World create() throws IrisException { - if(Bukkit.isPrimaryThread()) - { + if (Bukkit.isPrimaryThread()) { throw new IrisException("You cannot invoke create() on the main thread."); } IrisDimension d = IrisToolbelt.getDimension(dimension()); - if(d == null) - { + if (d == null) { throw new IrisException("Dimension cannot be found null for id " + dimension()); } - if(!studio()) - { + if (!studio()) { Iris.service(StudioSVC.class).installIntoWorld(sender, d.getLoadKey(), new File(name())); } @@ -158,15 +148,13 @@ public class IrisCreator { done.set(true); - if(sender.isPlayer()) - { + if (sender.isPlayer()) { J.s(() -> { sender.player().teleport(new Location(world.get(), 0, world.get().getHighestBlockYAt(0, 0), 0)); }); } - if(studio) - { + if (studio) { J.s(() -> { Iris.linkMultiverseCore.removeFromConfig(world.get()); @@ -189,8 +177,7 @@ public class IrisCreator { AtomicBoolean dx = new AtomicBoolean(false); J.a(() -> { - while(!dx.get()) - { + while (!dx.get()) { if (sender.isPlayer()) { sender.sendProgress(pp.get(), "Pregenerating"); J.sleep(16); diff --git a/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java b/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java index 9980bc490..3c5b58d75 100644 --- a/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java +++ b/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java @@ -25,7 +25,6 @@ import com.volmit.iris.core.pregenerator.PregenTask; import com.volmit.iris.core.pregenerator.PregeneratorMethod; import com.volmit.iris.core.pregenerator.methods.HeadlessPregenMethod; import com.volmit.iris.core.pregenerator.methods.HybridPregenMethod; -import com.volmit.iris.core.project.IrisProject; import com.volmit.iris.core.project.loader.IrisData; import com.volmit.iris.core.service.StudioSVC; import com.volmit.iris.engine.object.dimensional.IrisDimension; @@ -47,7 +46,6 @@ import org.zeroturnaround.zip.commons.FileUtils; import java.io.File; import java.io.IOException; -import java.net.MalformedURLException; import java.nio.charset.StandardCharsets; import java.util.UUID; @@ -184,15 +182,15 @@ public class IrisToolbelt { /** * Attempts to ensure that the pack is installed + * * @param sender the sender - * @param url the dimension + * @param url the dimension * @throws Throwable shit happens */ public static void install(VolmitSender sender, String url) throws Throwable { IrisProjectRepo r = IrisProjectRepo.from(url); - if(r != null) - { + if (r != null) { url = r.getRepo(); } @@ -218,8 +216,9 @@ public class IrisToolbelt { /** * Evacuate all players from the world + * * @param world the world to leave - * @param m the message + * @param m the message * @return true if it was evacuated. */ public static boolean evacuate(World world, String m) { diff --git a/src/main/java/com/volmit/iris/engine/object/spawners/IrisSurface.java b/src/main/java/com/volmit/iris/engine/object/spawners/IrisSurface.java index 6baf9ee2a..b599b20db 100644 --- a/src/main/java/com/volmit/iris/engine/object/spawners/IrisSurface.java +++ b/src/main/java/com/volmit/iris/engine/object/spawners/IrisSurface.java @@ -21,7 +21,6 @@ package com.volmit.iris.engine.object.spawners; import com.volmit.iris.engine.object.annotations.Desc; import org.bukkit.Material; import org.bukkit.block.Block; -import org.bukkit.block.BlockState; import org.bukkit.block.data.Waterlogged; @Desc("The type of surface entities should spawn on") diff --git a/src/main/java/com/volmit/iris/engine/object/villager/IrisVillagerOverride.java b/src/main/java/com/volmit/iris/engine/object/villager/IrisVillagerOverride.java index dca836015..aef3e0d4f 100644 --- a/src/main/java/com/volmit/iris/engine/object/villager/IrisVillagerOverride.java +++ b/src/main/java/com/volmit/iris/engine/object/villager/IrisVillagerOverride.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.engine.object.villager; import com.volmit.iris.engine.object.annotations.ArrayType; diff --git a/src/main/java/com/volmit/iris/engine/object/villager/IrisVillagerTrade.java b/src/main/java/com/volmit/iris/engine/object/villager/IrisVillagerTrade.java index e0694c84b..5e674303e 100644 --- a/src/main/java/com/volmit/iris/engine/object/villager/IrisVillagerTrade.java +++ b/src/main/java/com/volmit/iris/engine/object/villager/IrisVillagerTrade.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.engine.object.villager; diff --git a/src/main/java/com/volmit/iris/engine/platform/EngineProvider.java b/src/main/java/com/volmit/iris/engine/platform/EngineProvider.java index b1bb60772..401694e34 100644 --- a/src/main/java/com/volmit/iris/engine/platform/EngineProvider.java +++ b/src/main/java/com/volmit/iris/engine/platform/EngineProvider.java @@ -43,8 +43,7 @@ public class EngineProvider { IrisData data = new IrisData(dataLocation); IrisDimension realDimension = data.getDimensionLoader().load(dimension); - if(realDimension == null) - { + if (realDimension == null) { throw new RuntimeException("Cannot find dimension in " + data.getDataFolder().getAbsolutePath() + " with key " + dimension); } diff --git a/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java b/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java index b91e02ebb..100279ece 100644 --- a/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java +++ b/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java @@ -19,7 +19,6 @@ package com.volmit.iris.engine.scripting; import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.common.IrisScript; import org.apache.bsf.BSFManager; public interface EngineExecutionEnvironment { diff --git a/src/main/java/com/volmit/iris/util/data/B.java b/src/main/java/com/volmit/iris/util/data/B.java index 15de96ad3..25fc1b483 100644 --- a/src/main/java/com/volmit/iris/util/data/B.java +++ b/src/main/java/com/volmit/iris/util/data/B.java @@ -159,10 +159,7 @@ public class B { if (bx instanceof Leaves && IrisSettings.get().getGenerator().preventLeafDecay) { ((Leaves) bx).setPersistent(true); - } - - else if(bx instanceof Leaves) - { + } else if (bx instanceof Leaves) { ((Leaves) bx).setPersistent(false); } diff --git a/src/main/java/com/volmit/iris/util/data/IrisProjectRepo.java b/src/main/java/com/volmit/iris/util/data/IrisProjectRepo.java index be71001d9..b3fa89818 100644 --- a/src/main/java/com/volmit/iris/util/data/IrisProjectRepo.java +++ b/src/main/java/com/volmit/iris/util/data/IrisProjectRepo.java @@ -36,64 +36,44 @@ public class IrisProjectRepo { @Builder.Default private String tag = ""; - public static IrisProjectRepo from(String g) - { + public static IrisProjectRepo from(String g) { // https://github.com/IrisDimensions/overworld - if(g.startsWith("https://github.com/")) - { + if (g.startsWith("https://github.com/")) { String sub = g.split("\\Qgithub.com/\\E")[1]; IrisProjectRepo r = IrisProjectRepo.builder() .user(sub.split("\\Q/\\E")[0]) .repo(sub.split("\\Q/\\E")[1]).build(); - if(g.contains("/tree/")) - { + if (g.contains("/tree/")) { r.setBranch(g.split("/tree/")[1]); } return r; - } - - else if(g.contains("/")) - { + } else if (g.contains("/")) { String[] f = g.split("\\Q/\\E"); - if(f.length == 1) - { + if (f.length == 1) { return from(g); - } - - else if(f.length == 2) - { + } else if (f.length == 2) { return IrisProjectRepo.builder() .user(f[0]) .repo(f[1]) .build(); - } - - else if(f.length >= 3) - { + } else if (f.length >= 3) { IrisProjectRepo r = IrisProjectRepo.builder() .user(f[0]) .repo(f[1]) .build(); - if(f[2].startsWith("#")) - { + if (f[2].startsWith("#")) { r.setTag(f[2].substring(1)); - } - - else - { + } else { r.setBranch(f[2]); } return r; } - } - - else - { + } else { return IrisProjectRepo.builder() .user("IrisDimensions") .repo(g) @@ -104,10 +84,8 @@ public class IrisProjectRepo { return null; } - public String toURL() - { - if(!tag.trim().isEmpty()) - { + public String toURL() { + if (!tag.trim().isEmpty()) { return "https://codeload.github.com/" + user + "/" + repo + "/zip/refs/tags/" + tag; } diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java b/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java index db325eabc..27d567102 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.util.decree; import com.volmit.iris.Iris; @@ -5,19 +23,15 @@ import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.plugin.VolmitSender; public interface DecreeContextHandler { - static KMap, DecreeContextHandler> contextHandlers = buildContextHandlers(); + KMap, DecreeContextHandler> contextHandlers = buildContextHandlers(); static KMap, DecreeContextHandler> buildContextHandlers() { KMap, DecreeContextHandler> contextHandlers = new KMap<>(); - try - { + try { Iris.initialize("com.volmit.iris.util.decree.context").forEach((i) - -> contextHandlers.put(((DecreeContextHandler)i).getType(), (DecreeContextHandler)i)); - } - - catch(Throwable e) - { + -> contextHandlers.put(((DecreeContextHandler) i).getType(), (DecreeContextHandler) i)); + } catch (Throwable e) { Iris.reportError(e); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java b/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java index 5c27073f4..6f2753883 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java @@ -21,28 +21,23 @@ package com.volmit.iris.util.decree; import com.volmit.iris.core.tools.IrisToolbelt; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.format.C; import com.volmit.iris.util.plugin.VolmitSender; import org.bukkit.World; import org.bukkit.entity.Player; public interface DecreeExecutor { - default VolmitSender sender() - { + default VolmitSender sender() { return DecreeContext.get(); } - default Player player() - { + default Player player() { return sender().player(); } - default Engine engine() - { - if(sender().isPlayer() && IrisToolbelt.access(sender().player().getWorld()) != null) - { + default Engine engine() { + if (sender().isPlayer() && IrisToolbelt.access(sender().player().getWorld()) != null) { PlatformChunkGenerator gen = IrisToolbelt.access(sender().player().getWorld()); - if (gen != null){ + if (gen != null) { return gen.getEngine(); } } @@ -50,24 +45,21 @@ public interface DecreeExecutor { return null; } - default PlatformChunkGenerator access() - { - if(sender().isPlayer()) { + default PlatformChunkGenerator access() { + if (sender().isPlayer()) { return IrisToolbelt.access(world()); } return null; } - default World world() - { - if (sender().isPlayer()){ + default World world() { + if (sender().isPlayer()) { return sender().player().getWorld(); } return null; } - default T get(T v, T ifUndefined) - { + default T get(T v, T ifUndefined) { return v == null ? ifUndefined : v; } } diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeNode.java b/src/main/java/com/volmit/iris/util/decree/DecreeNode.java index e1d02713e..884ec3aff 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeNode.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeNode.java @@ -25,7 +25,6 @@ import lombok.Data; import java.lang.reflect.Method; import java.lang.reflect.Parameter; -import java.util.Arrays; @Data public class DecreeNode { @@ -37,20 +36,20 @@ public class DecreeNode { this.instance = instance; this.method = method; this.decree = method.getDeclaredAnnotation(Decree.class); - if (decree == null){ + if (decree == null) { throw new RuntimeException("Cannot instantiate DecreeNode on method " + method.getName() + " in " + method.getDeclaringClass().getCanonicalName() + " not annotated by @Decree"); } } /** * Get the parameters of this decree node + * * @return The list of parameters if ALL are annotated by @{@link Param}, else null */ public KList getParameters() { KList p = new KList<>(); - for(Parameter i : method.getParameters()) - { + for (Parameter i : method.getParameters()) { p.add(new DecreeParameter(i)); } @@ -72,10 +71,8 @@ public class DecreeNode { public KList getNames() { KList d = new KList<>(); - for(String i : decree.aliases()) - { - if(i.isEmpty()) - { + for (String i : decree.aliases()) { + if (i.isEmpty()) { continue; } diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java b/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java index eae213916..c234ce59e 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java @@ -30,11 +30,12 @@ public enum DecreeOrigin { /** * Check if the origin is valid for a sender + * * @param sender The sender to check * @return True if valid for origin */ - public boolean validFor(VolmitSender sender){ - if (sender.isPlayer()){ + public boolean validFor(VolmitSender sender) { + if (sender.isPlayer()) { return this.equals(PLAYER) || this.equals(BOTH); } else { return this.equals(CONSOLE) || this.equals(BOTH); diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java b/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java index d327effa6..d10dae774 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java @@ -34,7 +34,7 @@ public class DecreeParameter { public DecreeParameter(Parameter parameter) { this.parameter = parameter; this.param = parameter.getDeclaredAnnotation(Param.class); - if (param == null){ + if (param == null) { throw new RuntimeException("Cannot instantiate DecreeParameter on " + parameter.getName() + " in method " + parameter.getDeclaringExecutable().getName() + "(...) in class " + parameter.getDeclaringExecutable().getDeclaringClass().getCanonicalName() + " not annotated by @Param"); } } @@ -62,10 +62,8 @@ public class DecreeParameter { public KList getNames() { KList d = new KList<>(); - for(String i : param.aliases()) - { - if(i.isEmpty()) - { + for (String i : param.aliases()) { + if (i.isEmpty()) { continue; } @@ -90,8 +88,7 @@ public class DecreeParameter { KList ff = getHandler().getPossibilities(); ff = ff != null ? ff : new KList<>(); KList f = ff.convert((i) -> getHandler().toStringForce(i)); - if(f.isEmpty()) - { + if (f.isEmpty()) { f = new KList<>(); f.add(getHandler().getRandomDefault()); } diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java b/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java index e52d54fd4..5aa81c3ca 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java @@ -21,19 +21,20 @@ package com.volmit.iris.util.decree; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.decree.exceptions.DecreeWhichException; -import org.jetbrains.annotations.NotNull; import java.util.concurrent.atomic.AtomicReference; public interface DecreeParameterHandler { /** * Should return the possible values for this type + * * @return Possibilities for this type. */ KList getPossibilities(); /** * Converting the type back to a string (inverse of the {@link #parse(String) parse} method) + * * @param t The input of the designated type to convert to a String * @return The resulting string */ @@ -41,25 +42,27 @@ public interface DecreeParameterHandler { /** * Forces conversion to the designated type before converting to a string using {@link #toString(T t)} + * * @param t The object to convert to string (that should be of this type) * @return The resulting string. */ - default String toStringForce(Object t) - { - return toString((T)t); + default String toStringForce(Object t) { + return toString((T) t); } /** * Should parse a String into the designated type + * * @param in The string to parse * @return The value extracted from the string, of the designated type * @throws DecreeParsingException Thrown when the parsing fails (ex: "oop" translated to an integer throws this) - * @throws DecreeWhichException Thrown when multiple results are possible + * @throws DecreeWhichException Thrown when multiple results are possible */ T parse(String in) throws DecreeParsingException, DecreeWhichException; /** * Returns whether a certain type is supported by this handler
+ * * @param type The type to check * @return True if supported, false if not */ @@ -67,13 +70,12 @@ public interface DecreeParameterHandler { /** * The possible entries for the inputted string (support for autocomplete on partial entries) + * * @param input The inputted string to check against * @return A {@link KList} of possibilities */ - default KList getPossibilities(String input) - { - if(input.trim().isEmpty()) - { + default KList getPossibilities(String input) { + if (input.trim().isEmpty()) { KList f = getPossibilities(); return f == null ? new KList<>() : f; } @@ -82,26 +84,23 @@ public interface DecreeParameterHandler { KList possible = getPossibilities(); KList matches = new KList<>(); - if (possible == null || possible.isEmpty()){ + if (possible == null || possible.isEmpty()) { return matches; } - if (input.isEmpty()) - { + if (input.isEmpty()) { return getPossibilities(); } KList converted = possible.convert(v -> toString(v).trim()); - for(int i = 0; i < converted.size(); i++) - { + for (int i = 0; i < converted.size(); i++) { String g = converted.get(i); // if // G == I or // I in G or // G in I - if(g.equalsIgnoreCase(input) || g.toLowerCase().contains(input.toLowerCase()) || input.toLowerCase().contains(g.toLowerCase())) - { + if (g.equalsIgnoreCase(input) || g.toLowerCase().contains(input.toLowerCase()) || input.toLowerCase().contains(g.toLowerCase())) { matches.add(possible.get(i)); } } @@ -109,54 +108,36 @@ public interface DecreeParameterHandler { return matches; } - default String getRandomDefault() - { + default String getRandomDefault() { return "NOEXAMPLE"; } - default double getMultiplier(AtomicReference g) - { + default double getMultiplier(AtomicReference g) { double multiplier = 1; String in = g.get(); boolean valid = true; - while(valid) { + while (valid) { boolean trim = false; - if (in.toLowerCase().endsWith("k")) - { + if (in.toLowerCase().endsWith("k")) { multiplier *= 1000; trim = true; - } - - else if(in.toLowerCase().endsWith("m")) - { + } else if (in.toLowerCase().endsWith("m")) { multiplier *= 1000000; trim = true; - } - - else if(in.toLowerCase().endsWith("h")) - { + } else if (in.toLowerCase().endsWith("h")) { multiplier *= 100; trim = true; - } - - else if(in.toLowerCase().endsWith("c")) - { + } else if (in.toLowerCase().endsWith("c")) { multiplier *= 16; trim = true; - } - - else if(in.toLowerCase().endsWith("r")) - { + } else if (in.toLowerCase().endsWith("r")) { multiplier *= (16 * 32); trim = true; - } - - else { + } else { valid = false; } - if(trim) - { + if (trim) { in = in.substring(0, in.length() - 1); } } diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java b/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java index 547b6cbd1..afa9d0543 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java @@ -38,12 +38,12 @@ public interface DecreeSystem extends CommandExecutor, TabCompleter { /** * The root class to start command searching from + * * @return */ VirtualDecreeCommand getRoot(); - default boolean call(VolmitSender sender, String[] args) - { + default boolean call(VolmitSender sender, String[] args) { DecreeContext.touch(sender); return getRoot().invoke(sender, enhanceArgs(args)); } @@ -61,108 +61,77 @@ public interface DecreeSystem extends CommandExecutor, TabCompleter { @Override default boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { J.aBukkit(() -> { - if(!call(new VolmitSender(sender), args)) - { + if (!call(new VolmitSender(sender), args)) { sender.sendMessage(C.RED + "Unknown Iris Command"); } }); return true; } - static KList enhanceArgs(String[] args) - { + static KList enhanceArgs(String[] args) { return enhanceArgs(args, true); } - static KList enhanceArgs(String[] args, boolean trim) - { + static KList enhanceArgs(String[] args, boolean trim) { KList a = new KList<>(); - if(args.length == 0) - { + if (args.length == 0) { return a; } StringBuilder flat = new StringBuilder(); - for(String i : args) - { - if(trim) - { - if(i.trim().isEmpty()) - { + for (String i : args) { + if (trim) { + if (i.trim().isEmpty()) { continue; } flat.append(" ").append(i.trim()); - } - - else - { - if(i.endsWith(" ")) - { + } else { + if (i.endsWith(" ")) { flat.append(" ").append(i.trim()).append(" "); } } } - flat = new StringBuilder(flat.length() > 0 ? trim ? flat.toString().trim().length() > 0 ?flat.substring(1).trim() : flat.toString().trim() : flat.substring(1) : flat); + flat = new StringBuilder(flat.length() > 0 ? trim ? flat.toString().trim().length() > 0 ? flat.substring(1).trim() : flat.toString().trim() : flat.substring(1) : flat); StringBuilder arg = new StringBuilder(); boolean quoting = false; - for(int x = 0; x < flat.length(); x++) - { + for (int x = 0; x < flat.length(); x++) { char i = flat.charAt(x); char j = x < flat.length() - 1 ? flat.charAt(x + 1) : i; boolean hasNext = x < flat.length(); - if(i == ' ' && !quoting) - { - if(!arg.toString().trim().isEmpty() && trim) - { + if (i == ' ' && !quoting) { + if (!arg.toString().trim().isEmpty() && trim) { a.add(arg.toString().trim()); arg = new StringBuilder(); } - } - - else if(i == '"') - { - if(!quoting && (arg.length() == 0)) - { + } else if (i == '"') { + if (!quoting && (arg.length() == 0)) { quoting = true; - } - - else if(quoting) - { + } else if (quoting) { quoting = false; - if(hasNext && j == ' ') - { - if(!arg.toString().trim().isEmpty() && trim) - { + if (hasNext && j == ' ') { + if (!arg.toString().trim().isEmpty() && trim) { a.add(arg.toString().trim()); arg = new StringBuilder(); } - } - - else if(!hasNext) - { - if(!arg.toString().trim().isEmpty() && trim) - { + } else if (!hasNext) { + if (!arg.toString().trim().isEmpty() && trim) { a.add(arg.toString().trim()); arg = new StringBuilder(); } } } - } - - else - { + } else { arg.append(i); } } - if(!arg.toString().trim().isEmpty() && trim) - { + if (!arg.toString().trim().isEmpty() && trim) { a.add(arg.toString().trim()); } @@ -171,14 +140,13 @@ public interface DecreeSystem extends CommandExecutor, TabCompleter { /** * Get the handler for the specified type + * * @param type The type to handle * @return The corresponding {@link DecreeParameterHandler}, or null */ static DecreeParameterHandler getHandler(Class type) { - for(DecreeParameterHandler i : handlers) - { - if(i.supports(type)) - { + for (DecreeParameterHandler i : handlers) { + if (i.supports(type)) { return i; } } diff --git a/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java b/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java index 5406e2fb0..847027429 100644 --- a/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java +++ b/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java @@ -38,6 +38,7 @@ public @interface Decree { /** * Only allow if studio mode is enabled + * * @return defaults to false */ boolean studio() default false; diff --git a/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java b/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java index d8c2012ae..7a48953a1 100644 --- a/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.util.decree.context; import com.volmit.iris.core.tools.IrisToolbelt; @@ -6,14 +24,14 @@ import com.volmit.iris.util.decree.DecreeContextHandler; import com.volmit.iris.util.plugin.VolmitSender; public class BiomeContextHandler implements DecreeContextHandler { - public Class getType(){return IrisBiome.class;} + public Class getType() { + return IrisBiome.class; + } - public IrisBiome handle(VolmitSender sender) - { - if(sender.isPlayer() + public IrisBiome handle(VolmitSender sender) { + if (sender.isPlayer() && IrisToolbelt.isIrisWorld(sender.player().getWorld()) - && IrisToolbelt.access(sender.player().getWorld()).getEngine() != null) - { + && IrisToolbelt.access(sender.player().getWorld()).getEngine() != null) { return IrisToolbelt.access(sender.player().getWorld()).getEngine().getBiome(sender.player().getLocation()); } diff --git a/src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java b/src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java index 90025baad..fe271f759 100644 --- a/src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.util.decree.context; import com.volmit.iris.core.tools.IrisToolbelt; @@ -6,14 +24,14 @@ import com.volmit.iris.util.decree.DecreeContextHandler; import com.volmit.iris.util.plugin.VolmitSender; public class DimensionContextHandler implements DecreeContextHandler { - public Class getType(){return IrisDimension.class;} + public Class getType() { + return IrisDimension.class; + } - public IrisDimension handle(VolmitSender sender) - { - if(sender.isPlayer() + public IrisDimension handle(VolmitSender sender) { + if (sender.isPlayer() && IrisToolbelt.isIrisWorld(sender.player().getWorld()) - && IrisToolbelt.access(sender.player().getWorld()).getEngine() != null) - { + && IrisToolbelt.access(sender.player().getWorld()).getEngine() != null) { return IrisToolbelt.access(sender.player().getWorld()).getEngine().getDimension(); } diff --git a/src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java b/src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java index 0e23c0f62..e5b520b24 100644 --- a/src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.util.decree.context; import com.volmit.iris.core.tools.IrisToolbelt; @@ -14,10 +32,9 @@ public class GeneratorContextHandler implements DecreeContextHandler. + */ + package com.volmit.iris.util.decree.context; import com.volmit.iris.core.tools.IrisToolbelt; @@ -6,14 +24,14 @@ import com.volmit.iris.util.decree.DecreeContextHandler; import com.volmit.iris.util.plugin.VolmitSender; public class RegionContextHandler implements DecreeContextHandler { - public Class getType(){return IrisRegion.class;} + public Class getType() { + return IrisRegion.class; + } - public IrisRegion handle(VolmitSender sender) - { - if(sender.isPlayer() + public IrisRegion handle(VolmitSender sender) { + if (sender.isPlayer() && IrisToolbelt.isIrisWorld(sender.player().getWorld()) - && IrisToolbelt.access(sender.player().getWorld()).getEngine() != null) - { + && IrisToolbelt.access(sender.player().getWorld()).getEngine() != null) { return IrisToolbelt.access(sender.player().getWorld()).getEngine().getRegion(sender.player().getLocation()); } diff --git a/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java b/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java index 44880df15..a19e5ae22 100644 --- a/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.util.decree.context; import com.volmit.iris.util.decree.DecreeContextHandler; @@ -5,10 +23,11 @@ import com.volmit.iris.util.plugin.VolmitSender; import org.bukkit.World; public class WorldContextHandler implements DecreeContextHandler { - public Class getType(){return World.class;} + public Class getType() { + return World.class; + } - public World handle(VolmitSender sender) - { + public World handle(VolmitSender sender) { return sender.isPlayer() ? sender.player().getWorld() : null; } } diff --git a/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java b/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java index 42dcf7a67..9ae308d82 100644 --- a/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java +++ b/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java @@ -21,7 +21,7 @@ package com.volmit.iris.util.decree.exceptions; /** * Thrown when a decree parameter is parsed, but parsing fails */ -public class DecreeParsingException extends Exception{ +public class DecreeParsingException extends Exception { public DecreeParsingException(String message) { super(message); } diff --git a/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeWhichException.java b/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeWhichException.java index 1a34ec754..36486a937 100644 --- a/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeWhichException.java +++ b/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeWhichException.java @@ -18,13 +18,11 @@ package com.volmit.iris.util.decree.exceptions; -import com.volmit.iris.util.collection.KList; - /** * Thrown when more than one option is available for a singular mapping
* Like having a hashmap where one input maps to two outputs. */ -public class DecreeWhichException extends Exception{ +public class DecreeWhichException extends Exception { public DecreeWhichException() { super(); } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java index 1409cf14e..deb687b79 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java @@ -21,13 +21,11 @@ package com.volmit.iris.util.decree.handlers; import com.volmit.iris.Iris; import com.volmit.iris.core.project.loader.IrisData; import com.volmit.iris.engine.object.biome.IrisBiome; -import com.volmit.iris.engine.object.dimensional.IrisDimension; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.decree.DecreeParameterHandler; import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.decree.exceptions.DecreeWhichException; -import com.volmit.iris.util.math.RNG; import java.io.File; @@ -37,12 +35,10 @@ public class BiomeHandler implements DecreeParameterHandler { KMap p = new KMap<>(); //noinspection ConstantConditions - for(File i : Iris.instance.getDataFolder("packs").listFiles()) - { - if(i.isDirectory()) { + for (File i : Iris.instance.getDataFolder("packs").listFiles()) { + if (i.isDirectory()) { IrisData data = new IrisData(i, true); - for (IrisBiome j : data.getBiomeLoader().loadAll(data.getBiomeLoader().getPossibleKeys())) - { + for (IrisBiome j : data.getBiomeLoader().loadAll(data.getBiomeLoader().getPossibleKeys())) { p.putIfAbsent(j.getLoadKey(), j); } @@ -60,27 +56,19 @@ public class BiomeHandler implements DecreeParameterHandler { @Override public IrisBiome parse(String in) throws DecreeParsingException, DecreeWhichException { - try - { + try { KList options = getPossibilities(in); - if(options.isEmpty()) - { + if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Biome \"" + in + "\""); - } - - else if(options.size() > 1) - { + } else if (options.size() > 1) { throw new DecreeWhichException(); } return options.get(0); - } - catch(DecreeParsingException e){ + } catch (DecreeParsingException e) { throw e; - } - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to find Biome \"" + in + "\" because of an uncaught exception: " + e); } } @@ -91,8 +79,7 @@ public class BiomeHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return "biome"; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java index b499295f3..61adc04b0 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java @@ -30,7 +30,6 @@ import com.volmit.iris.util.plugin.VolmitSender; import org.bukkit.FluidCollisionMode; import org.bukkit.entity.Player; import org.bukkit.util.BlockVector; -import org.bukkit.util.Vector; public class BlockVectorHandler implements DecreeParameterHandler { @Override @@ -38,8 +37,7 @@ public class BlockVectorHandler implements DecreeParameterHandler { KList vx = new KList<>(); VolmitSender s = DecreeContext.get(); - if(s.isPlayer()) - { + if (s.isPlayer()) { vx.add(s.player().getLocation().toVector().toBlockVector()); } @@ -48,9 +46,8 @@ public class BlockVectorHandler implements DecreeParameterHandler { @Override public String toString(BlockVector v) { - if(v.getY() == 0) - { - return Form.f(v.getBlockX(), 2)+ "," + Form.f(v.getBlockZ(), 2); + if (v.getY() == 0) { + return Form.f(v.getBlockX(), 2) + "," + Form.f(v.getBlockZ(), 2); } return Form.f(v.getBlockX(), 2) + "," + Form.f(v.getBlockY(), 2) + "," + Form.f(v.getBlockZ(), 2); @@ -59,69 +56,43 @@ public class BlockVectorHandler implements DecreeParameterHandler { @Override public BlockVector parse(String in) throws DecreeParsingException, DecreeWhichException { try { - if (in.contains(",")) - { + if (in.contains(",")) { String[] comp = in.split("\\Q,\\E"); - if(comp.length == 2) - { + if (comp.length == 2) { return new BlockVector(Integer.parseInt(comp[0].trim()), 0, Integer.parseInt(comp[1].trim())); - } - - else if(comp.length == 3) - { + } else if (comp.length == 3) { return new BlockVector(Integer.parseInt(comp[0].trim()), Integer.parseInt(comp[1].trim()), Integer.parseInt(comp[2].trim())); - } - - else - { + } else { throw new DecreeParsingException("Could not parse components for vector. You have " + comp.length + " components. Expected 2 or 3."); } - } - - else if(in.equalsIgnoreCase("here") ||in.equalsIgnoreCase("me") ||in.equalsIgnoreCase("self")) - { - if(!DecreeContext.get().isPlayer()) - { + } else if (in.equalsIgnoreCase("here") || in.equalsIgnoreCase("me") || in.equalsIgnoreCase("self")) { + if (!DecreeContext.get().isPlayer()) { throw new DecreeParsingException("You cannot specify me,self,here as a console."); } return DecreeContext.get().player().getLocation().toVector().toBlockVector(); - } - - else if(in.equalsIgnoreCase("look") ||in.equalsIgnoreCase("cursor") ||in.equalsIgnoreCase("crosshair")) - { - if(!DecreeContext.get().isPlayer()) - { + } else if (in.equalsIgnoreCase("look") || in.equalsIgnoreCase("cursor") || in.equalsIgnoreCase("crosshair")) { + if (!DecreeContext.get().isPlayer()) { throw new DecreeParsingException("You cannot specify look,cursor,crosshair as a console."); } return DecreeContext.get().player().getTargetBlockExact(256, FluidCollisionMode.NEVER).getLocation().toVector().toBlockVector(); - } - - else if(in.trim().toLowerCase().startsWith("player:")) - { + } else if (in.trim().toLowerCase().startsWith("player:")) { String v = in.trim().split("\\Q:\\E")[1]; KList px = DecreeSystem.getHandler(Player.class).getPossibilities(v); - if(px != null && px.isNotEmpty()) - { - return ((Player)px.get(0)).getLocation().toVector().toBlockVector(); - } - - else if(px == null || px.isEmpty()) - { + if (px != null && px.isNotEmpty()) { + return ((Player) px.get(0)).getLocation().toVector().toBlockVector(); + } else if (px == null || px.isEmpty()) { throw new DecreeParsingException("Cannot find player: " + v); } } - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to get Vector for \"" + in + "\" because of an uncaught exception: " + e); } @@ -134,8 +105,7 @@ public class BlockVectorHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return M.r(0.5) ? "0,0" : "0,0,0"; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java index 6a7f1ba98..e61de78ad 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java @@ -22,7 +22,6 @@ import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.decree.DecreeParameterHandler; import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; public class BooleanHandler implements DecreeParameterHandler { @Override @@ -37,13 +36,9 @@ public class BooleanHandler implements DecreeParameterHandler { @Override public Boolean parse(String in) throws DecreeParsingException { - try - { + try { return Boolean.parseBoolean(in); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to parse boolean \"" + in + "\""); } } @@ -54,8 +49,7 @@ public class BooleanHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return M.r(0.5) + ""; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java index 1fee2277b..4321013f7 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java @@ -36,13 +36,9 @@ public class ByteHandler implements DecreeParameterHandler { @Override public Byte parse(String in) throws DecreeParsingException { - try - { + try { return Byte.parseByte(in); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to parse byte \"" + in + "\""); } } @@ -53,8 +49,7 @@ public class ByteHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return RNG.r.i(0, Byte.MAX_VALUE) + ""; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java index bb5aa88fa..b22f6b073 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java @@ -26,8 +26,6 @@ import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.decree.DecreeParameterHandler; import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.decree.exceptions.DecreeWhichException; -import org.bukkit.Bukkit; -import org.bukkit.World; import java.io.File; @@ -37,12 +35,10 @@ public class DimensionHandler implements DecreeParameterHandler { KMap p = new KMap<>(); //noinspection ConstantConditions - for(File i : Iris.instance.getDataFolder("packs").listFiles()) - { - if(i.isDirectory()) { + for (File i : Iris.instance.getDataFolder("packs").listFiles()) { + if (i.isDirectory()) { IrisData data = new IrisData(i, true); - for (IrisDimension j : data.getDimensionLoader().loadAll(data.getDimensionLoader().getPossibleKeys())) - { + for (IrisDimension j : data.getDimensionLoader().loadAll(data.getDimensionLoader().getPossibleKeys())) { p.putIfAbsent(j.getLoadKey(), j); } @@ -60,27 +56,19 @@ public class DimensionHandler implements DecreeParameterHandler { @Override public IrisDimension parse(String in) throws DecreeParsingException, DecreeWhichException { - try - { + try { KList options = getPossibilities(in); - if(options.isEmpty()) - { + if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Dimension \"" + in + "\""); - } - - else if(options.size() > 1) - { + } else if (options.size() > 1) { throw new DecreeWhichException(); } return options.get(0); - } - catch(DecreeParsingException e){ + } catch (DecreeParsingException e) { throw e; - } - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to find Dimension \"" + in + "\" because of an uncaught exception: " + e); } } @@ -91,8 +79,7 @@ public class DimensionHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return "dimension"; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java index 0fc5577ea..51a0f06fe 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java @@ -34,15 +34,11 @@ public class DoubleHandler implements DecreeParameterHandler { @Override public Double parse(String in) throws DecreeParsingException { - try - { + try { AtomicReference r = new AtomicReference<>(in); double m = getMultiplier(r); return Double.parseDouble(r.get()) * m; - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to parse double \"" + in + "\""); } } @@ -58,8 +54,7 @@ public class DoubleHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return Form.f(RNG.r.d(0, 99.99), 1) + ""; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java index ac4d35d56..f3c5b43f2 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java @@ -1,8 +1,25 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.util.decree.handlers; import com.volmit.iris.Iris; import com.volmit.iris.core.project.loader.IrisData; -import com.volmit.iris.engine.object.dimensional.IrisDimension; import com.volmit.iris.engine.object.entity.IrisEntity; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; @@ -24,12 +41,10 @@ public class EntityHandler implements DecreeParameterHandler { KMap p = new KMap<>(); //noinspection ConstantConditions - for(File i : Iris.instance.getDataFolder("packs").listFiles()) - { - if(i.isDirectory()) { + for (File i : Iris.instance.getDataFolder("packs").listFiles()) { + if (i.isDirectory()) { IrisData data = new IrisData(i, true); - for (IrisEntity j : data.getEntityLoader().loadAll(data.getEntityLoader().getPossibleKeys())) - { + for (IrisEntity j : data.getEntityLoader().loadAll(data.getEntityLoader().getPossibleKeys())) { p.putIfAbsent(j.getLoadKey(), j); } @@ -61,27 +76,19 @@ public class EntityHandler implements DecreeParameterHandler { */ @Override public IrisEntity parse(String in) throws DecreeParsingException, DecreeWhichException { - try - { + try { KList options = getPossibilities(in); - if(options.isEmpty()) - { + if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Entity \"" + in + "\""); - } - - else if(options.size() > 1) - { + } else if (options.size() > 1) { throw new DecreeWhichException(); } return options.get(0); - } - catch(DecreeParsingException e){ + } catch (DecreeParsingException e) { throw e; - } - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to find Entity \"" + in + "\" because of an uncaught exception: " + e); } } @@ -98,8 +105,7 @@ public class EntityHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return "entity"; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java index 8f7942ca4..e2a4d4901 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java @@ -34,15 +34,11 @@ public class FloatHandler implements DecreeParameterHandler { @Override public Float parse(String in) throws DecreeParsingException { - try - { + try { AtomicReference r = new AtomicReference<>(in); double m = getMultiplier(r); - return (float)(Float.parseFloat(r.get()) * m); - } - - catch(Throwable e) - { + return (float) (Float.parseFloat(r.get()) * m); + } catch (Throwable e) { throw new DecreeParsingException("Unable to parse float \"" + in + "\""); } } @@ -58,8 +54,7 @@ public class FloatHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return Form.f(RNG.r.d(0, 99.99), 1) + ""; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java index 62d0c2545..108b39f89 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.util.decree.handlers; import com.volmit.iris.Iris; @@ -17,12 +35,10 @@ public class GeneratorHandler implements DecreeParameterHandler { KMap p = new KMap<>(); //noinspection ConstantConditions - for(File i : Iris.instance.getDataFolder("packs").listFiles()) - { - if(i.isDirectory()) { + for (File i : Iris.instance.getDataFolder("packs").listFiles()) { + if (i.isDirectory()) { IrisData data = new IrisData(i, true); - for (IrisGenerator j : data.getGeneratorLoader().loadAll(data.getGeneratorLoader().getPossibleKeys())) - { + for (IrisGenerator j : data.getGeneratorLoader().loadAll(data.getGeneratorLoader().getPossibleKeys())) { p.putIfAbsent(j.getLoadKey(), j); } @@ -40,27 +56,19 @@ public class GeneratorHandler implements DecreeParameterHandler { @Override public IrisGenerator parse(String in) throws DecreeParsingException, DecreeWhichException { - try - { + try { KList options = getPossibilities(in); - if(options.isEmpty()) - { + if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Generator \"" + in + "\""); - } - - else if(options.size() > 1) - { + } else if (options.size() > 1) { throw new DecreeWhichException(); } return options.get(0); - } - catch(DecreeParsingException e){ + } catch (DecreeParsingException e) { throw e; - } - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to find Generator \"" + in + "\" because of an uncaught exception: " + e); } } @@ -71,8 +79,7 @@ public class GeneratorHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return "generator"; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java index 454866a2f..1c7588675 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java @@ -21,10 +21,8 @@ package com.volmit.iris.util.decree.handlers; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.decree.DecreeParameterHandler; import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.RNG; -import java.util.Locale; import java.util.concurrent.atomic.AtomicReference; public class IntegerHandler implements DecreeParameterHandler { @@ -35,15 +33,11 @@ public class IntegerHandler implements DecreeParameterHandler { @Override public Integer parse(String in) throws DecreeParsingException { - try - { + try { AtomicReference r = new AtomicReference<>(in); double m = getMultiplier(r); - return (int)(Integer.valueOf(r.get()).doubleValue() * m); - } - - catch(Throwable e) - { + return (int) (Integer.valueOf(r.get()).doubleValue() * m); + } catch (Throwable e) { throw new DecreeParsingException("Unable to parse integer \"" + in + "\""); } } @@ -59,8 +53,7 @@ public class IntegerHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return RNG.r.i(0, 99) + ""; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java index cfe40ea33..51c88bbda 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java @@ -33,15 +33,11 @@ public class LongHandler implements DecreeParameterHandler { @Override public Long parse(String in) throws DecreeParsingException { - try - { + try { AtomicReference r = new AtomicReference<>(in); double m = getMultiplier(r); - return (long)(Long.valueOf(r.get()).doubleValue() * m); - } - - catch(Throwable e) - { + return (long) (Long.valueOf(r.get()).doubleValue() * m); + } catch (Throwable e) { throw new DecreeParsingException("Unable to parse long \"" + in + "\""); } } @@ -57,8 +53,7 @@ public class LongHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return RNG.r.i(0, 99) + ""; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java index 5f0e395d6..fde4d88cb 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java @@ -40,25 +40,17 @@ public class PlayerHandler implements DecreeParameterHandler { @Override public Player parse(String in) throws DecreeParsingException, DecreeWhichException { - try - { + try { KList options = getPossibilities(in); - if(options.isEmpty()) - { + if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Player \"" + in + "\""); - } - - else if(options.size() > 1) - { + } else if (options.size() > 1) { throw new DecreeWhichException(); } return options.get(0); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to find Player \"" + in + "\" because of an uncaught exception: " + e); } } @@ -69,8 +61,7 @@ public class PlayerHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return "playername"; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java index 58dd64757..d2ba36ddc 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java @@ -35,12 +35,10 @@ public class RegionHandler implements DecreeParameterHandler { KMap p = new KMap<>(); //noinspection ConstantConditions - for(File i : Iris.instance.getDataFolder("packs").listFiles()) - { - if(i.isDirectory()) { + for (File i : Iris.instance.getDataFolder("packs").listFiles()) { + if (i.isDirectory()) { IrisData data = new IrisData(i, true); - for (IrisRegion j : data.getRegionLoader().loadAll(data.getRegionLoader().getPossibleKeys())) - { + for (IrisRegion j : data.getRegionLoader().loadAll(data.getRegionLoader().getPossibleKeys())) { p.putIfAbsent(j.getLoadKey(), j); } @@ -58,27 +56,19 @@ public class RegionHandler implements DecreeParameterHandler { @Override public IrisRegion parse(String in) throws DecreeParsingException, DecreeWhichException { - try - { + try { KList options = getPossibilities(in); - if(options.isEmpty()) - { + if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Region \"" + in + "\""); - } - - else if(options.size() > 1) - { + } else if (options.size() > 1) { throw new DecreeWhichException(); } return options.get(0); - } - catch(DecreeParsingException e){ + } catch (DecreeParsingException e) { throw e; - } - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to find Region \"" + in + "\" because of an uncaught exception: " + e); } } @@ -89,8 +79,7 @@ public class RegionHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return "region"; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java index 3e8315d0c..1f3bfc615 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java @@ -1,3 +1,21 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.volmit.iris.util.decree.handlers; import com.volmit.iris.Iris; @@ -17,12 +35,10 @@ public class ScriptHandler implements DecreeParameterHandler { KMap p = new KMap<>(); //noinspection ConstantConditions - for(File i : Iris.instance.getDataFolder("packs").listFiles()) - { - if(i.isDirectory()) { + for (File i : Iris.instance.getDataFolder("packs").listFiles()) { + if (i.isDirectory()) { IrisData data = new IrisData(i, true); - for (IrisScript j : data.getScriptLoader().loadAll(data.getScriptLoader().getPossibleKeys())) - { + for (IrisScript j : data.getScriptLoader().loadAll(data.getScriptLoader().getPossibleKeys())) { p.putIfAbsent(j.getLoadKey(), j); } @@ -40,27 +56,19 @@ public class ScriptHandler implements DecreeParameterHandler { @Override public IrisScript parse(String in) throws DecreeParsingException, DecreeWhichException { - try - { + try { KList options = getPossibilities(in); - if(options.isEmpty()) - { + if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Script \"" + in + "\""); - } - - else if(options.size() > 1) - { + } else if (options.size() > 1) { throw new DecreeWhichException(); } return options.get(0); - } - catch(DecreeParsingException e){ + } catch (DecreeParsingException e) { throw e; - } - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to find Script \"" + in + "\" because of an uncaught exception: " + e); } } @@ -71,8 +79,7 @@ public class ScriptHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return "script"; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java index 174f20d47..42472aa73 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java @@ -33,15 +33,11 @@ public class ShortHandler implements DecreeParameterHandler { @Override public Short parse(String in) throws DecreeParsingException { - try - { + try { AtomicReference r = new AtomicReference<>(in); double m = getMultiplier(r); - return (short)(Short.valueOf(r.get()).doubleValue() * m); - } - - catch(Throwable e) - { + return (short) (Short.valueOf(r.get()).doubleValue() * m); + } catch (Throwable e) { throw new DecreeParsingException("Unable to parse short \"" + in + "\""); } } @@ -57,8 +53,7 @@ public class ShortHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return RNG.r.i(0, 99) + ""; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java index 501b446cc..f960db407 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java @@ -21,7 +21,6 @@ package com.volmit.iris.util.decree.handlers; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.decree.DecreeParameterHandler; import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.math.RNG; /** * Abstraction can sometimes breed stupidity @@ -48,8 +47,7 @@ public class StringHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return new KList().qadd("text").qadd("string") .qadd("blah").qadd("derp").qadd("yolo").getRandom(); } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java index 3203f8389..f99f55d2a 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java @@ -27,23 +27,18 @@ import com.volmit.iris.util.decree.exceptions.DecreeWhichException; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.M; import com.volmit.iris.util.plugin.VolmitSender; -import org.bukkit.Bukkit; import org.bukkit.FluidCollisionMode; -import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.util.BlockVector; import org.bukkit.util.Vector; -import java.util.Locale; - public class VectorHandler implements DecreeParameterHandler { @Override public KList getPossibilities() { KList vx = new KList<>(); VolmitSender s = DecreeContext.get(); - if(s.isPlayer()) - { + if (s.isPlayer()) { vx.add(s.player().getLocation().toVector()); } @@ -52,9 +47,8 @@ public class VectorHandler implements DecreeParameterHandler { @Override public String toString(Vector v) { - if(v.getY() == 0) - { - return Form.f(v.getX(), 2)+ "," + Form.f(v.getZ(), 2); + if (v.getY() == 0) { + return Form.f(v.getX(), 2) + "," + Form.f(v.getZ(), 2); } return Form.f(v.getX(), 2) + "," + Form.f(v.getY(), 2) + "," + Form.f(v.getZ(), 2); @@ -63,69 +57,43 @@ public class VectorHandler implements DecreeParameterHandler { @Override public Vector parse(String in) throws DecreeParsingException, DecreeWhichException { try { - if (in.contains(",")) - { + if (in.contains(",")) { String[] comp = in.split("\\Q,\\E"); - if(comp.length == 2) - { + if (comp.length == 2) { return new BlockVector(Double.parseDouble(comp[0].trim()), 0, Double.parseDouble(comp[1].trim())); - } - - else if(comp.length == 3) - { + } else if (comp.length == 3) { return new BlockVector(Double.parseDouble(comp[0].trim()), Double.parseDouble(comp[1].trim()), Double.parseDouble(comp[2].trim())); - } - - else - { + } else { throw new DecreeParsingException("Could not parse components for vector. You have " + comp.length + " components. Expected 2 or 3."); } - } - - else if(in.equalsIgnoreCase("here") ||in.equalsIgnoreCase("me") ||in.equalsIgnoreCase("self")) - { - if(!DecreeContext.get().isPlayer()) - { + } else if (in.equalsIgnoreCase("here") || in.equalsIgnoreCase("me") || in.equalsIgnoreCase("self")) { + if (!DecreeContext.get().isPlayer()) { throw new DecreeParsingException("You cannot specify me,self,here as a console."); } return DecreeContext.get().player().getLocation().toVector(); - } - - else if(in.equalsIgnoreCase("look") ||in.equalsIgnoreCase("cursor") ||in.equalsIgnoreCase("crosshair")) - { - if(!DecreeContext.get().isPlayer()) - { + } else if (in.equalsIgnoreCase("look") || in.equalsIgnoreCase("cursor") || in.equalsIgnoreCase("crosshair")) { + if (!DecreeContext.get().isPlayer()) { throw new DecreeParsingException("You cannot specify look,cursor,crosshair as a console."); } return DecreeContext.get().player().getTargetBlockExact(256, FluidCollisionMode.NEVER).getLocation().toVector(); - } - - else if(in.trim().toLowerCase().startsWith("player:")) - { + } else if (in.trim().toLowerCase().startsWith("player:")) { String v = in.trim().split("\\Q:\\E")[1]; KList px = DecreeSystem.getHandler(Player.class).getPossibilities(v); - if(px != null && px.isNotEmpty()) - { - return ((Player)px.get(0)).getLocation().toVector(); - } - - else if(px == null || px.isEmpty()) - { + if (px != null && px.isNotEmpty()) { + return ((Player) px.get(0)).getLocation().toVector(); + } else if (px == null || px.isEmpty()) { throw new DecreeParsingException("Cannot find player: " + v); } } - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to get Vector for \"" + in + "\" because of an uncaught exception: " + e); } @@ -138,8 +106,7 @@ public class VectorHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return M.r(0.5) ? "0,0" : "0,0,0"; } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java index f82e9709c..de7438c5e 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java @@ -38,27 +38,19 @@ public class WorldHandler implements DecreeParameterHandler { @Override public World parse(String in) throws DecreeParsingException, DecreeWhichException { - try - { + try { KList options = getPossibilities(in); - if(options.isEmpty()) - { + if (options.isEmpty()) { throw new DecreeParsingException("Unable to find World \"" + in + "\""); - } - - else if(options.size() > 1) - { + } else if (options.size() > 1) { throw new DecreeWhichException(); } return options.get(0); - } - catch(DecreeParsingException e){ + } catch (DecreeParsingException e) { throw e; - } - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to find World \"" + in + "\" because of an uncaught exception: " + e); } } @@ -69,8 +61,7 @@ public class WorldHandler implements DecreeParameterHandler { } @Override - public String getRandomDefault() - { + public String getRandomDefault() { return "world"; } } diff --git a/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java b/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java index 2095a5ef4..e06b4256e 100644 --- a/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java +++ b/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java @@ -22,7 +22,10 @@ import com.volmit.iris.Iris; import com.volmit.iris.core.IrisSettings; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.decree.*; +import com.volmit.iris.util.decree.DecreeContext; +import com.volmit.iris.util.decree.DecreeContextHandler; +import com.volmit.iris.util.decree.DecreeNode; +import com.volmit.iris.util.decree.DecreeParameter; import com.volmit.iris.util.decree.annotations.Decree; import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.decree.exceptions.DecreeWhichException; @@ -31,15 +34,10 @@ import com.volmit.iris.util.format.Form; import com.volmit.iris.util.plugin.VolmitSender; import com.volmit.iris.util.scheduling.J; import lombok.Data; -import lombok.Getter; -import org.apache.logging.log4j.core.impl.ThrowableFormatOptions; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.util.Arrays; -import java.util.Locale; import java.util.Objects; @Data @@ -49,8 +47,7 @@ public class VirtualDecreeCommand { private final KList nodes; private final DecreeNode node; - private VirtualDecreeCommand(Class type, VirtualDecreeCommand parent, KList nodes, DecreeNode node) - { + private VirtualDecreeCommand(Class type, VirtualDecreeCommand parent, KList nodes, DecreeNode node) { this.parent = parent; this.type = type; this.nodes = nodes; @@ -64,23 +61,19 @@ public class VirtualDecreeCommand { public static VirtualDecreeCommand createRoot(VirtualDecreeCommand parent, Object v) throws Throwable { VirtualDecreeCommand c = new VirtualDecreeCommand(v.getClass(), parent, new KList<>(), null); - for(Field i : v.getClass().getDeclaredFields()) - { - if(Modifier.isStatic(i.getModifiers()) || Modifier.isFinal(i.getModifiers())|| Modifier.isTransient(i.getModifiers())|| Modifier.isVolatile(i.getModifiers())) - { + for (Field i : v.getClass().getDeclaredFields()) { + if (Modifier.isStatic(i.getModifiers()) || Modifier.isFinal(i.getModifiers()) || Modifier.isTransient(i.getModifiers()) || Modifier.isVolatile(i.getModifiers())) { continue; } - if(!i.getType().isAnnotationPresent(Decree.class)) - { + if (!i.getType().isAnnotationPresent(Decree.class)) { continue; } i.setAccessible(true); Object childRoot = i.get(v); - if(childRoot == null) - { + if (childRoot == null) { childRoot = i.getType().getConstructor().newInstance(); i.set(v, childRoot); } @@ -88,15 +81,12 @@ public class VirtualDecreeCommand { c.getNodes().add(createRoot(c, childRoot)); } - for(Method i : v.getClass().getDeclaredMethods()) - { - if(Modifier.isStatic(i.getModifiers()) || Modifier.isFinal(i.getModifiers()) || Modifier.isPrivate(i.getModifiers())) - { + for (Method i : v.getClass().getDeclaredMethods()) { + if (Modifier.isStatic(i.getModifiers()) || Modifier.isFinal(i.getModifiers()) || Modifier.isPrivate(i.getModifiers())) { continue; } - if(!i.isAnnotationPresent(Decree.class)) - { + if (!i.isAnnotationPresent(Decree.class)) { continue; } @@ -106,13 +96,11 @@ public class VirtualDecreeCommand { return c; } - public String getPath() - { + public String getPath() { KList n = new KList<>(); VirtualDecreeCommand cursor = this; - while(cursor.getParent() != null) - { + while (cursor.getParent() != null) { cursor = cursor.getParent(); n.add(cursor.getName()); } @@ -120,13 +108,11 @@ public class VirtualDecreeCommand { return "/" + n.reverse().qadd(getName()).toString(" "); } - public String getParentPath() - { - return getParent().getPath(); + public String getParentPath() { + return getParent().getPath(); } - public String getName() - { + public String getName() { return isNode() ? getNode().getName() : getType().getDeclaredAnnotation(Decree.class).name(); } @@ -134,24 +120,19 @@ public class VirtualDecreeCommand { return isNode() ? getNode().getDecree().studio() : getType().getDeclaredAnnotation(Decree.class).studio(); } - public String getDescription() - { + public String getDescription() { return isNode() ? getNode().getDescription() : getType().getDeclaredAnnotation(Decree.class).description(); } - public KList getNames() - { - if(isNode()) - { + public KList getNames() { + if (isNode()) { return getNode().getNames(); } KList d = new KList<>(); Decree dc = getType().getDeclaredAnnotation(Decree.class); - for(String i : dc.aliases()) - { - if(i.isEmpty()) - { + for (String i : dc.aliases()) { + if (i.isEmpty()) { continue; } @@ -164,56 +145,45 @@ public class VirtualDecreeCommand { return d; } - public boolean isNode() - { + public boolean isNode() { return node != null; } - public KList tabComplete(KList args, String raw) - { + public KList tabComplete(KList args, String raw) { KList skip = new KList<>(); KList tabs = new KList<>(); invokeTabComplete(args, skip, tabs, raw); return tabs; } - private boolean invokeTabComplete(KList args, KList skip, KList tabs, String raw) - { - if(isStudio() && !IrisSettings.get().isStudio()) - { + private boolean invokeTabComplete(KList args, KList skip, KList tabs, String raw) { + if (isStudio() && !IrisSettings.get().isStudio()) { return false; } - if(isNode()) - { + if (isNode()) { tab(args, tabs); skip.add(hashCode()); return false; } - if(args.isEmpty()) - { + if (args.isEmpty()) { tab(args, tabs); return true; } String head = args.get(0); - if (args.size() > 1 || head.endsWith(" ")) - { + if (args.size() > 1 || head.endsWith(" ")) { VirtualDecreeCommand match = matchNode(head, skip); - if(match != null) - { + if (match != null) { args.pop(); return match.invokeTabComplete(args, skip, tabs, raw); } skip.add(hashCode()); - } - - else - { + } else { tab(args, tabs); } @@ -226,22 +196,18 @@ public class VirtualDecreeCommand { Runnable la = () -> { }; - for(String a : args) - { + for (String a : args) { la.run(); last = a; la = () -> { - if(isNode()) - { + if (isNode()) { String sea = a.contains("=") ? a.split("\\Q=\\E")[0] : a; sea = sea.trim(); - searching: for(DecreeParameter i : getNode().getParameters()) - { - for(String m : i.getNames()) - { - if(m.equalsIgnoreCase(sea) || m.toLowerCase().contains(sea.toLowerCase()) || sea.toLowerCase().contains(m.toLowerCase())) - { + searching: + for (DecreeParameter i : getNode().getParameters()) { + for (String m : i.getNames()) { + if (m.equalsIgnoreCase(sea) || m.toLowerCase().contains(sea.toLowerCase()) || sea.toLowerCase().contains(m.toLowerCase())) { ignore.add(i); continue searching; } @@ -251,52 +217,37 @@ public class VirtualDecreeCommand { }; } - if(last != null) - { + if (last != null) { if (isNode()) { - for(DecreeParameter i : getNode().getParameters()) - { - if(ignore.contains(i)) - { + for (DecreeParameter i : getNode().getParameters()) { + if (ignore.contains(i)) { continue; } int g = 0; - if(last.contains("=")) - { + if (last.contains("=")) { String[] vv = last.trim().split("\\Q=\\E"); String vx = vv.length == 2 ? vv[1] : ""; - for(String f : i.getHandler().getPossibilities(vx).convert((v) -> i.getHandler().toStringForce(v))) - { + for (String f : i.getHandler().getPossibilities(vx).convert((v) -> i.getHandler().toStringForce(v))) { g++; - tabs.add(i.getName() +"="+ f); + tabs.add(i.getName() + "=" + f); + } + } else { + for (String f : i.getHandler().getPossibilities("").convert((v) -> i.getHandler().toStringForce(v))) { + g++; + tabs.add(i.getName() + "=" + f); } } - else - { - for(String f : i.getHandler().getPossibilities("").convert((v) -> i.getHandler().toStringForce(v))) - { - g++; - tabs.add(i.getName() +"="+ f); - } - } - - if(g == 0) - { + if (g == 0) { tabs.add(i.getName() + "="); } } - } - - else - { - for(VirtualDecreeCommand i : getNodes()) - { + } else { + for (VirtualDecreeCommand i : getNodes()) { String m = i.getName(); - if(m.equalsIgnoreCase(last) || m.toLowerCase().contains(last.toLowerCase()) || last.toLowerCase().contains(m.toLowerCase())) - { + if (m.equalsIgnoreCase(last) || m.toLowerCase().contains(last.toLowerCase()) || last.toLowerCase().contains(m.toLowerCase())) { tabs.addAll(i.getNames()); } } @@ -304,40 +255,30 @@ public class VirtualDecreeCommand { } } - private KMap map(VolmitSender sender, KList in) - { + private KMap map(VolmitSender sender, KList in) { KMap data = new KMap<>(); - for(int ix = 0; ix < in.size(); ix++) - { + for (int ix = 0; ix < in.size(); ix++) { String i = in.get(ix); - if(i.contains("=")) - { + if (i.contains("=")) { String[] v = i.split("\\Q=\\E"); String key = v[0]; String value = v[1]; DecreeParameter param = null; - for(DecreeParameter j : getNode().getParameters()) - { - for(String k : j.getNames()) - { - if(k.equalsIgnoreCase(key)) - { + for (DecreeParameter j : getNode().getParameters()) { + for (String k : j.getNames()) { + if (k.equalsIgnoreCase(key)) { param = j; break; } } } - if(param == null) - { - for(DecreeParameter j : getNode().getParameters()) - { - for(String k : j.getNames()) - { - if(k.toLowerCase().contains(key.toLowerCase()) || key.toLowerCase().contains(k.toLowerCase())) - { + if (param == null) { + for (DecreeParameter j : getNode().getParameters()) { + for (String k : j.getNames()) { + if (k.toLowerCase().contains(key.toLowerCase()) || key.toLowerCase().contains(k.toLowerCase())) { param = j; break; } @@ -345,8 +286,7 @@ public class VirtualDecreeCommand { } } - if(param == null) - { + if (param == null) { Iris.debug("Can't find parameter key for " + key + "=" + value + " in " + getPath()); sender.sendMessage(C.YELLOW + "Unknown Parameter: " + key); continue; @@ -367,12 +307,8 @@ public class VirtualDecreeCommand { Iris.debug("Client chose " + update + " for " + key + "=" + value + " (old) in " + getPath()); in.set(ix--, update); } - } - - else - { - try - { + } else { + try { DecreeParameter par = getNode().getParameters().get(ix); try { data.put(par.getName(), par.getHandler().parse(i)); @@ -387,11 +323,8 @@ public class VirtualDecreeCommand { Iris.debug("Client chose " + update + " for " + par.getName() + "=" + i + " (old) in " + getPath()); in.set(ix--, update); } - } - - catch(IndexOutOfBoundsException e) - { - sender.sendMessage(C.YELLOW + "Unknown Parameter: " + i + " (" + Form.getNumberSuffixThStRd(ix+1) + " argument)"); + } catch (IndexOutOfBoundsException e) { + sender.sendMessage(C.YELLOW + "Unknown Parameter: " + i + " (" + Form.getNumberSuffixThStRd(ix + 1) + " argument)"); } } } @@ -399,25 +332,20 @@ public class VirtualDecreeCommand { return data; } - public boolean invoke(VolmitSender sender, KList realArgs) - { + public boolean invoke(VolmitSender sender, KList realArgs) { return invoke(sender, realArgs, new KList<>()); } - public boolean invoke(VolmitSender sender, KList args, KList skip) - { - if(isStudio() && !IrisSettings.get().isStudio()) - { + public boolean invoke(VolmitSender sender, KList args, KList skip) { + if (isStudio() && !IrisSettings.get().isStudio()) { sender.sendMessage(C.RED + "To use Iris Studio Commands, please enable studio in Iris/settings.json (settings auto-reload)"); return false; } Iris.debug("@ " + getPath() + " with " + args.toString(", ")); - if(isNode()) - { - Iris.debug("Invoke " +getPath() + "(" + args.toString(",") + ") at "); - if(invokeNode(sender, map(sender, args))) - { + if (isNode()) { + Iris.debug("Invoke " + getPath() + "(" + args.toString(",") + ") at "); + if (invokeNode(sender, map(sender, args))) { return true; } @@ -425,8 +353,7 @@ public class VirtualDecreeCommand { return false; } - if(args.isEmpty()) - { + if (args.isEmpty()) { sender.sendDecreeHelp(this); return true; @@ -435,8 +362,7 @@ public class VirtualDecreeCommand { String head = args.get(0); VirtualDecreeCommand match = matchNode(head, skip); - if(match != null) - { + if (match != null) { args.pop(); return match.invoke(sender, args, skip); } @@ -447,25 +373,20 @@ public class VirtualDecreeCommand { } private boolean invokeNode(VolmitSender sender, KMap map) { - if(map == null) - { + if (map == null) { return false; } Object[] params = new Object[getNode().getMethod().getParameterCount()]; int vm = 0; - for(DecreeParameter i : getNode().getParameters()) - { + for (DecreeParameter i : getNode().getParameters()) { Object value = map.get(i.getName()); - try - { - if(value == null && i.hasDefault()) - { + try { + if (value == null && i.hasDefault()) { value = i.getDefaultValue(); } - } - catch (DecreeParsingException e) { + } catch (DecreeParsingException e) { Iris.debug("Can't parse parameter value for " + i.getName() + "=" + i + " in " + getPath() + " using handler " + i.getHandler().getClass().getSimpleName()); sender.sendMessage(C.RED + "Cannot convert \"" + i + "\" into a " + i.getType().getSimpleName()); return false; @@ -474,11 +395,9 @@ public class VirtualDecreeCommand { KList validOptions = i.getHandler().getPossibilities(i.getParam().defaultValue()); String update = null; // TODO: PICK ONE Iris.debug("Client chose " + update + " for " + i.getName() + "=" + i + " (old) in " + getPath()); - try - { + try { value = i.getDefaultValue(); - } - catch (DecreeParsingException x) { + } catch (DecreeParsingException x) { x.printStackTrace(); Iris.debug("Can't parse parameter value for " + i.getName() + "=" + i + " in " + getPath() + " using handler " + i.getHandler().getClass().getSimpleName()); sender.sendMessage(C.RED + "Cannot convert \"" + i + "\" into a " + i.getType().getSimpleName()); @@ -488,33 +407,23 @@ public class VirtualDecreeCommand { } } - if(i.isContextual() && value == null) - { + if (i.isContextual() && value == null) { DecreeContextHandler ch = DecreeContextHandler.contextHandlers.get(i.getType()); - if(ch != null) - { + if (ch != null) { value = ch.handle(sender); - if(value != null) - { + if (value != null) { Iris.debug("Null Parameter " + i.getName() + " derived a value of " + i.getHandler().toStringForce(value) + " from " + ch.getClass().getSimpleName()); - } - - else - { + } else { Iris.debug("Null Parameter " + i.getName() + " could not derive a value from " + ch.getClass().getSimpleName()); } - } - - else - { + } else { Iris.debug("Null Parameter " + i.getName() + " is contextual but has no context handler for " + i.getType().getCanonicalName()); } } - if(i.hasDefault() && value == null) - { + if (i.hasDefault() && value == null) { try { Iris.debug("Null Parameter " + i.getName() + " is using default value " + i.getParam().defaultValue()); value = i.getDefaultValue(); @@ -523,7 +432,7 @@ public class VirtualDecreeCommand { } } - if(i.isRequired() && value == null) { + if (i.isRequired() && value == null) { sender.sendMessage("Missing: " + i.getName() + " (" + i.getType().getSimpleName() + ") as the " + Form.getNumberSuffixThStRd(vm + 1) + " argument."); return false; } @@ -533,55 +442,41 @@ public class VirtualDecreeCommand { } Runnable rx = () -> { - try - { + try { DecreeContext.touch(sender); getNode().getMethod().setAccessible(true); getNode().getMethod().invoke(getNode().getInstance(), params); - } - - catch(Throwable e) - { + } catch (Throwable e) { e.printStackTrace(); throw new RuntimeException("Failed to execute "); // TODO: } }; - if(getNode().isSync()) - { + if (getNode().isSync()) { J.s(rx); - } - - else - { + } else { rx.run(); } return true; } - public KList matchAllNodes(String in) - { + public KList matchAllNodes(String in) { KList g = new KList<>(); - if(in.trim().isEmpty()) - { + if (in.trim().isEmpty()) { g.addAll(nodes); return g; } - for(VirtualDecreeCommand i : nodes) - { - if(i.matches(in)) - { + for (VirtualDecreeCommand i : nodes) { + if (i.matches(in)) { g.add(i); } } - for(VirtualDecreeCommand i : nodes) - { - if(i.deepMatches(in)) - { + for (VirtualDecreeCommand i : nodes) { + if (i.deepMatches(in)) { g.add(i); } } @@ -590,35 +485,27 @@ public class VirtualDecreeCommand { return g; } - public VirtualDecreeCommand matchNode(String in, KList skip) - { - if(in.trim().isEmpty()) - { + public VirtualDecreeCommand matchNode(String in, KList skip) { + if (in.trim().isEmpty()) { return null; } - for(VirtualDecreeCommand i : nodes) - { - if(skip.contains(i.hashCode())) - { + for (VirtualDecreeCommand i : nodes) { + if (skip.contains(i.hashCode())) { continue; } - if(i.matches(in)) - { + if (i.matches(in)) { return i; } } - for(VirtualDecreeCommand i : nodes) - { - if(skip.contains(i.hashCode())) - { + for (VirtualDecreeCommand i : nodes) { + if (skip.contains(i.hashCode())) { continue; } - if(i.deepMatches(in)) - { + if (i.deepMatches(in)) { return i; } } @@ -626,14 +513,11 @@ public class VirtualDecreeCommand { return null; } - public boolean deepMatches(String in) - { + public boolean deepMatches(String in) { KList a = getNames(); - for(String i : a) - { - if(i.toLowerCase().contains(in.toLowerCase()) || in.toLowerCase().contains(i.toLowerCase())) - { + for (String i : a) { + if (i.toLowerCase().contains(in.toLowerCase()) || in.toLowerCase().contains(i.toLowerCase())) { return true; } } @@ -642,26 +526,23 @@ public class VirtualDecreeCommand { } @Override - public int hashCode(){ + public int hashCode() { return Objects.hash(getName(), getDescription(), getType(), getPath()); } @Override - public boolean equals(Object obj){ - if (!(obj instanceof VirtualDecreeCommand)){ + public boolean equals(Object obj) { + if (!(obj instanceof VirtualDecreeCommand)) { return false; } return this.hashCode() == obj.hashCode(); } - public boolean matches(String in) - { + public boolean matches(String in) { KList a = getNames(); - for(String i : a) - { - if(i.equalsIgnoreCase(in)) - { + for (String i : a) { + if (i.equalsIgnoreCase(in)) { return true; } } diff --git a/src/main/java/com/volmit/iris/util/format/Form.java b/src/main/java/com/volmit/iris/util/format/Form.java index 217db0fea..beac89d4d 100644 --- a/src/main/java/com/volmit/iris/util/format/Form.java +++ b/src/main/java/com/volmit/iris/util/format/Form.java @@ -18,7 +18,6 @@ package com.volmit.iris.util.format; -import com.google.common.base.Preconditions; import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.RollingSequence; diff --git a/src/main/java/com/volmit/iris/util/mantle/Mantle.java b/src/main/java/com/volmit/iris/util/mantle/Mantle.java index 387c82199..80da0a9b1 100644 --- a/src/main/java/com/volmit/iris/util/mantle/Mantle.java +++ b/src/main/java/com/volmit/iris/util/mantle/Mantle.java @@ -136,8 +136,7 @@ public class Mantle { throw new RuntimeException("The Mantle is closed"); } - if(y < 0) - { + if (y < 0) { return; } @@ -170,8 +169,7 @@ public class Mantle { throw new RuntimeException("The Mantle is closed"); } - if(y < 0) - { + if (y < 0) { return null; } @@ -259,8 +257,7 @@ public class Mantle { */ @RegionCoordinates private TectonicPlate get(int x, int z) { - if(io.get()) - { + if (io.get()) { try { return getSafe(x, z).get(); } catch (InterruptedException e) { @@ -272,8 +269,7 @@ public class Mantle { TectonicPlate p = loadedRegions.get(key(x, z)); - if(p != null) - { + if (p != null) { return p; } diff --git a/src/main/java/com/volmit/iris/util/network/DL.java b/src/main/java/com/volmit/iris/util/network/DL.java index 5815fd940..e81286edc 100644 --- a/src/main/java/com/volmit/iris/util/network/DL.java +++ b/src/main/java/com/volmit/iris/util/network/DL.java @@ -18,305 +18,258 @@ package com.volmit.iris.util.network; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.net.URLConnection; - import com.volmit.iris.util.collection.KSet; import com.volmit.iris.util.io.IO; import com.volmit.iris.util.scheduling.ChronoLatch; -public abstract class DL -{ - protected File d; - protected URL u; - protected ChronoLatch latch; - protected KSet flags; - protected MeteredOutputStream o; - protected DownloadState state; - protected int timeout; - protected long size; - protected long start; - protected long downloaded; - protected long currentChunk; - protected long lastChunk; - protected long bps; - protected int bufferSize; - protected long lastPull; - protected DownloadMonitor m; - - public DL(URL u, File d, DownloadFlag...downloadFlags) - { - this.d = d; - this.u = u; - size = -1; - lastPull = -1; - downloaded = 0; - bufferSize = 8192 * 32; - currentChunk = 0; - lastChunk = -1; - bps = -1; - start = -1; - timeout = 10000; - state = DownloadState.NEW; - flags = new KSet<>(); - latch = new ChronoLatch(500); +import java.io.*; +import java.net.URL; +import java.net.URLConnection; - for(DownloadFlag i : downloadFlags) - { - flags.add(i); - } - } - - public void monitor(DownloadMonitor m) - { - this.m = m; - } - - public void update() - { - if(m != null) - { - m.onUpdate(state, getProgress(), getElapsed(), getTimeLeft(), bps, getDiskBytesPerSecond(), size, downloaded, bufferSize, getBufferUse()); - } - } - - public boolean hasFlag(DownloadFlag f) - { - return flags.contains(f); - } - - public boolean isState(DownloadState s) - { - return state.equals(s); - } - - protected void state(DownloadState s) - { - this.state = s; - update(); - } - - public int getBufferSize() - { - return bufferSize; - } - - public void start() throws IOException - { - if(!isState(DownloadState.NEW)) - { - throw new DownloadException("Cannot start download while " + state.toString()); - } - - state(DownloadState.STARTING); - - if(hasFlag(DownloadFlag.CALCULATE_SIZE)) - { - size = calculateSize(); - } - - start = System.currentTimeMillis(); - downloaded = 0; - bps = 0; - lastChunk = System.currentTimeMillis(); - o = new MeteredOutputStream(new FileOutputStream(d), 100); - openStream(); - state(DownloadState.DOWNLOADING); - } - - protected abstract long download() throws IOException; - - protected abstract void openStream() throws IOException; - - protected abstract void closeStream() throws IOException; - - public void downloadChunk() throws IOException - { - if(!isState(DownloadState.DOWNLOADING)) - { - throw new DownloadException("Cannot download while " + state.toString()); - } - - long d = download(); - lastPull = d; - - if(d < 0) - { - finishDownload(); - return; - } - - downloaded += d; - currentChunk += d; - - double chunkTime = (double)(System.currentTimeMillis() - lastChunk) / 1000D; - bps = (long) ((double)currentChunk / chunkTime); - - if(latch.flip()) - { - update(); - } - } - - public double getBufferUse() - { - return (double)lastPull / (double)bufferSize; - } - - private void finishDownload() throws IOException - { - if(!isState(DownloadState.NEW)) - { - throw new DownloadException("Cannot finish download while " + state.toString()); - } - - closeStream(); - o.close(); - state(DownloadState.COMPLETE); - } +public abstract class DL { + protected File d; + protected URL u; + protected ChronoLatch latch; + protected KSet flags; + protected MeteredOutputStream o; + protected DownloadState state; + protected int timeout; + protected long size; + protected long start; + protected long downloaded; + protected long currentChunk; + protected long lastChunk; + protected long bps; + protected int bufferSize; + protected long lastPull; + protected DownloadMonitor m; - public long getElapsed() - { - return System.currentTimeMillis() - start; - } - - public long getRemaining() - { - return size - downloaded; - } - - public long getTimeLeft() - { - return (long) (((double)getRemaining() / (double)bps) * 1000D); - } - - public long getDiskBytesPerSecond() - { - if(o == null) - { - return -1; - } - - return o.getBps(); - } - - public long getBytesPerSecond() - { - return bps; - } - - public double getProgress() - { - return hasProgress() ? ((double)downloaded / (double)size) : -1D; - } - - public boolean hasProgress() - { - return size > 0; - } + public DL(URL u, File d, DownloadFlag... downloadFlags) { + this.d = d; + this.u = u; + size = -1; + lastPull = -1; + downloaded = 0; + bufferSize = 8192 * 32; + currentChunk = 0; + lastChunk = -1; + bps = -1; + start = -1; + timeout = 10000; + state = DownloadState.NEW; + flags = new KSet<>(); + latch = new ChronoLatch(500); - private long calculateSize() throws IOException - { - URLConnection c = u.openConnection(); - c.setConnectTimeout((int) timeout); - c.setReadTimeout((int) timeout); - c.connect(); - return c.getContentLengthLong(); - } - - public enum DownloadFlag - { - CALCULATE_SIZE - } - - public enum DownloadState - { - NEW, - STARTING, - DOWNLOADING, - FINALIZING, - COMPLETE, - FAILED - } - - public static class ThrottledDownload extends Download - { - private long mbps; - - public ThrottledDownload(URL u, File d, long mbps, DownloadFlag... downloadFlags) { - super(u, d, downloadFlags); - this.mbps = mbps; - } - - @Override - protected long download() throws IOException - { - if(getBytesPerSecond() > mbps) - { - try - { - Thread.sleep(40); - } - - catch (InterruptedException e) - { - e.printStackTrace(); - } - - return IO.transfer(in, o, 8192, mbps/20); - } - - return IO.transfer(in, o, 8192, bufferSize); - } - } - - public static class DoubleBufferedDownload extends Download - { - protected BufferedOutputStream os; - - public DoubleBufferedDownload(URL u, File d, DownloadFlag... downloadFlags) - { - super(u, d, downloadFlags); - } - - @Override - protected void openStream() throws IOException - { - os = new BufferedOutputStream(o, 8192*16); - in = new BufferedInputStream(u.openStream(), 8192*16); - buf = new byte[8192 * 2]; - } - } - - public static class Download extends DL - { - protected InputStream in; - protected byte[] buf; - public Download(URL u, File d, DownloadFlag... downloadFlags) { - super(u, d, downloadFlags); - } + for (DownloadFlag i : downloadFlags) { + flags.add(i); + } + } - @Override - protected long download() throws IOException - { - return IO.transfer(in, o, buf, bufferSize); - } + public void monitor(DownloadMonitor m) { + this.m = m; + } - @Override - protected void openStream() throws IOException { - in = u.openStream(); - buf = new byte[8192]; - } + public void update() { + if (m != null) { + m.onUpdate(state, getProgress(), getElapsed(), getTimeLeft(), bps, getDiskBytesPerSecond(), size, downloaded, bufferSize, getBufferUse()); + } + } - @Override - protected void closeStream() throws IOException { - in.close(); - } - } + public boolean hasFlag(DownloadFlag f) { + return flags.contains(f); + } + + public boolean isState(DownloadState s) { + return state.equals(s); + } + + protected void state(DownloadState s) { + this.state = s; + update(); + } + + public int getBufferSize() { + return bufferSize; + } + + public void start() throws IOException { + if (!isState(DownloadState.NEW)) { + throw new DownloadException("Cannot start download while " + state.toString()); + } + + state(DownloadState.STARTING); + + if (hasFlag(DownloadFlag.CALCULATE_SIZE)) { + size = calculateSize(); + } + + start = System.currentTimeMillis(); + downloaded = 0; + bps = 0; + lastChunk = System.currentTimeMillis(); + o = new MeteredOutputStream(new FileOutputStream(d), 100); + openStream(); + state(DownloadState.DOWNLOADING); + } + + protected abstract long download() throws IOException; + + protected abstract void openStream() throws IOException; + + protected abstract void closeStream() throws IOException; + + public void downloadChunk() throws IOException { + if (!isState(DownloadState.DOWNLOADING)) { + throw new DownloadException("Cannot download while " + state.toString()); + } + + long d = download(); + lastPull = d; + + if (d < 0) { + finishDownload(); + return; + } + + downloaded += d; + currentChunk += d; + + double chunkTime = (double) (System.currentTimeMillis() - lastChunk) / 1000D; + bps = (long) ((double) currentChunk / chunkTime); + + if (latch.flip()) { + update(); + } + } + + public double getBufferUse() { + return (double) lastPull / (double) bufferSize; + } + + private void finishDownload() throws IOException { + if (!isState(DownloadState.NEW)) { + throw new DownloadException("Cannot finish download while " + state.toString()); + } + + closeStream(); + o.close(); + state(DownloadState.COMPLETE); + } + + public long getElapsed() { + return System.currentTimeMillis() - start; + } + + public long getRemaining() { + return size - downloaded; + } + + public long getTimeLeft() { + return (long) (((double) getRemaining() / (double) bps) * 1000D); + } + + public long getDiskBytesPerSecond() { + if (o == null) { + return -1; + } + + return o.getBps(); + } + + public long getBytesPerSecond() { + return bps; + } + + public double getProgress() { + return hasProgress() ? ((double) downloaded / (double) size) : -1D; + } + + public boolean hasProgress() { + return size > 0; + } + + private long calculateSize() throws IOException { + URLConnection c = u.openConnection(); + c.setConnectTimeout(timeout); + c.setReadTimeout(timeout); + c.connect(); + return c.getContentLengthLong(); + } + + public enum DownloadFlag { + CALCULATE_SIZE + } + + public enum DownloadState { + NEW, + STARTING, + DOWNLOADING, + FINALIZING, + COMPLETE, + FAILED + } + + public static class ThrottledDownload extends Download { + private final long mbps; + + public ThrottledDownload(URL u, File d, long mbps, DownloadFlag... downloadFlags) { + super(u, d, downloadFlags); + this.mbps = mbps; + } + + @Override + protected long download() throws IOException { + if (getBytesPerSecond() > mbps) { + try { + Thread.sleep(40); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + return IO.transfer(in, o, 8192, mbps / 20); + } + + return IO.transfer(in, o, 8192, bufferSize); + } + } + + public static class DoubleBufferedDownload extends Download { + protected BufferedOutputStream os; + + public DoubleBufferedDownload(URL u, File d, DownloadFlag... downloadFlags) { + super(u, d, downloadFlags); + } + + @Override + protected void openStream() throws IOException { + os = new BufferedOutputStream(o, 8192 * 16); + in = new BufferedInputStream(u.openStream(), 8192 * 16); + buf = new byte[8192 * 2]; + } + } + + public static class Download extends DL { + protected InputStream in; + protected byte[] buf; + + public Download(URL u, File d, DownloadFlag... downloadFlags) { + super(u, d, downloadFlags); + } + + @Override + protected long download() throws IOException { + return IO.transfer(in, o, buf, bufferSize); + } + + @Override + protected void openStream() throws IOException { + in = u.openStream(); + buf = new byte[8192]; + } + + @Override + protected void closeStream() throws IOException { + in.close(); + } + } } \ No newline at end of file diff --git a/src/main/java/com/volmit/iris/util/network/DownloadException.java b/src/main/java/com/volmit/iris/util/network/DownloadException.java index 83154c087..37e9be366 100644 --- a/src/main/java/com/volmit/iris/util/network/DownloadException.java +++ b/src/main/java/com/volmit/iris/util/network/DownloadException.java @@ -20,23 +20,22 @@ package com.volmit.iris.util.network; import java.io.IOException; -public class DownloadException extends IOException -{ - private static final long serialVersionUID = 5137918663903349839L; +public class DownloadException extends IOException { + private static final long serialVersionUID = 5137918663903349839L; - public DownloadException() { - super(); - } + public DownloadException() { + super(); + } - public DownloadException(String message, Throwable cause) { - super(message, cause); - } + public DownloadException(String message, Throwable cause) { + super(message, cause); + } - public DownloadException(String message) { - super(message); - } + public DownloadException(String message) { + super(message); + } - public DownloadException(Throwable cause) { - super(cause); - } + public DownloadException(Throwable cause) { + super(cause); + } } \ No newline at end of file diff --git a/src/main/java/com/volmit/iris/util/network/DownloadMonitor.java b/src/main/java/com/volmit/iris/util/network/DownloadMonitor.java index 7ce01ac5c..d9316077f 100644 --- a/src/main/java/com/volmit/iris/util/network/DownloadMonitor.java +++ b/src/main/java/com/volmit/iris/util/network/DownloadMonitor.java @@ -19,7 +19,6 @@ package com.volmit.iris.util.network; @FunctionalInterface -public interface DownloadMonitor -{ - public void onUpdate(DL.DownloadState state, double progress, long elapsed, long estimated, long bps, long iobps, long size, long downloaded, long buffer, double bufferuse); +public interface DownloadMonitor { + void onUpdate(DL.DownloadState state, double progress, long elapsed, long estimated, long bps, long iobps, long size, long downloaded, long buffer, double bufferuse); } \ No newline at end of file diff --git a/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java b/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java index 9a32b9531..939f8746b 100644 --- a/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java +++ b/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java @@ -21,100 +21,85 @@ package com.volmit.iris.util.network; import java.io.IOException; import java.io.InputStream; -public class MeteredInputStream extends InputStream -{ - private InputStream os; - private long written; - private long totalWritten; - private long since; - private boolean auto; - private long interval; - private long bps; - - public MeteredInputStream(InputStream os, long interval) - { - this.os = os; - written = 0; - totalWritten = 0; - auto = true; - this.interval = interval; - bps = 0; - since = System.currentTimeMillis(); - } - - public MeteredInputStream(InputStream os) - { - this(os, 100); - auto = false; - } +public class MeteredInputStream extends InputStream { + private final InputStream os; + private long written; + private long totalWritten; + private long since; + private boolean auto; + private long interval; + private long bps; - @Override - public int read() throws IOException - { - written++; - totalWritten++; - - if(auto && System.currentTimeMillis() - getSince() > interval) - { - pollRead(); - } - - return os.read(); - } - - public long getSince() - { - return since; - } - - public long getRead() - { - return written; - } - - public long pollRead() - { - long w = written; - written = 0; - double secondsElapsedSince = (double) (System.currentTimeMillis() - since) / 1000.0; - bps = (long) ((double) w / secondsElapsedSince); - since = System.currentTimeMillis(); - - return w; - } + public MeteredInputStream(InputStream os, long interval) { + this.os = os; + written = 0; + totalWritten = 0; + auto = true; + this.interval = interval; + bps = 0; + since = System.currentTimeMillis(); + } - public void close() throws IOException - { - os.close(); - } + public MeteredInputStream(InputStream os) { + this(os, 100); + auto = false; + } - public boolean isAuto() - { - return auto; - } + @Override + public int read() throws IOException { + written++; + totalWritten++; - public void setAuto(boolean auto) - { - this.auto = auto; - } + if (auto && System.currentTimeMillis() - getSince() > interval) { + pollRead(); + } - public long getInterval() - { - return interval; - } + return os.read(); + } - public void setInterval(long interval) - { - this.interval = interval; - } + public long getSince() { + return since; + } - public long getTotalRead() - { - return totalWritten; - } + public long getRead() { + return written; + } - public long getBps() - { - return bps; - } + public long pollRead() { + long w = written; + written = 0; + double secondsElapsedSince = (double) (System.currentTimeMillis() - since) / 1000.0; + bps = (long) ((double) w / secondsElapsedSince); + since = System.currentTimeMillis(); + + return w; + } + + public void close() throws IOException { + os.close(); + } + + public boolean isAuto() { + return auto; + } + + public void setAuto(boolean auto) { + this.auto = auto; + } + + public long getInterval() { + return interval; + } + + public void setInterval(long interval) { + this.interval = interval; + } + + public long getTotalRead() { + return totalWritten; + } + + public long getBps() { + return bps; + } } \ No newline at end of file diff --git a/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java b/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java index 4c3ef62a2..8ba0d12ad 100644 --- a/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java +++ b/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java @@ -21,98 +21,83 @@ package com.volmit.iris.util.network; import java.io.IOException; import java.io.OutputStream; -public class MeteredOutputStream extends OutputStream -{ - private OutputStream os; - private long written; - private long totalWritten; - private long since; - private boolean auto; - private long interval; - private long bps; - - public MeteredOutputStream(OutputStream os, long interval) - { - this.os = os; - written = 0; - totalWritten = 0; - auto = true; - this.interval = interval; - bps = 0; - since = System.currentTimeMillis(); - } - - public MeteredOutputStream(OutputStream os) - { - this(os, 100); - auto = false; - } +public class MeteredOutputStream extends OutputStream { + private final OutputStream os; + private long written; + private long totalWritten; + private long since; + private boolean auto; + private long interval; + private long bps; - @Override - public void write(int b) throws IOException - { - os.write(b); - written++; - totalWritten++; - - if(auto && System.currentTimeMillis() - getSince() > interval) - { - pollWritten(); - } - } - - public long getSince() - { - return since; - } - - public long getWritten() - { - return written; - } - - public long pollWritten() - { - long w = written; - written = 0; - double secondsElapsedSince = (double) (System.currentTimeMillis() - since) / 1000.0; - bps = (long) ((double) w / secondsElapsedSince); - since = System.currentTimeMillis(); - return w; - } + public MeteredOutputStream(OutputStream os, long interval) { + this.os = os; + written = 0; + totalWritten = 0; + auto = true; + this.interval = interval; + bps = 0; + since = System.currentTimeMillis(); + } - public void close() throws IOException - { - os.close(); - } + public MeteredOutputStream(OutputStream os) { + this(os, 100); + auto = false; + } - public boolean isAuto() - { - return auto; - } + @Override + public void write(int b) throws IOException { + os.write(b); + written++; + totalWritten++; - public void setAuto(boolean auto) - { - this.auto = auto; - } + if (auto && System.currentTimeMillis() - getSince() > interval) { + pollWritten(); + } + } - public long getInterval() - { - return interval; - } + public long getSince() { + return since; + } - public void setInterval(long interval) - { - this.interval = interval; - } + public long getWritten() { + return written; + } - public long getTotalWritten() - { - return totalWritten; - } + public long pollWritten() { + long w = written; + written = 0; + double secondsElapsedSince = (double) (System.currentTimeMillis() - since) / 1000.0; + bps = (long) ((double) w / secondsElapsedSince); + since = System.currentTimeMillis(); + return w; + } - public long getBps() - { - return bps; - } + public void close() throws IOException { + os.close(); + } + + public boolean isAuto() { + return auto; + } + + public void setAuto(boolean auto) { + this.auto = auto; + } + + public long getInterval() { + return interval; + } + + public void setInterval(long interval) { + this.interval = interval; + } + + public long getTotalWritten() { + return totalWritten; + } + + public long getBps() { + return bps; + } } \ No newline at end of file diff --git a/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java b/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java index 5d98877db..0835bc6e4 100644 --- a/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java +++ b/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java @@ -360,11 +360,9 @@ public class VolmitSender implements CommandSender { return s.spigot(); } - private String pickRandoms(int max, VirtualDecreeCommand i) - { + private String pickRandoms(int max, VirtualDecreeCommand i) { KList m = new KList<>(); - for(int ix = 0; ix < max; ix++) - { + for (int ix = 0; ix < max; ix++) { m.add((i.isNode() ? (i.getNode().getParameters().isNotEmpty()) ? "<#aebef2>✦ <#5ef288>" @@ -385,8 +383,7 @@ public class VolmitSender implements CommandSender { } - public void sendHeader(String name, int overrideLength) - { + public void sendHeader(String name, int overrideLength) { int len = overrideLength; int h = name.length() + 2; String s = Form.repeat(" ", len - h - 4); @@ -395,95 +392,80 @@ public class VolmitSender implements CommandSender { String sf = "["; String se = "]"; - if(name.trim().isEmpty()) - { - sendMessageRaw("" + sf + s + "" + s + se); - } - - else - { + if (name.trim().isEmpty()) { + sendMessageRaw("" + sf + s + "" + s + se); + } else { sendMessageRaw("" + sf + s + si + " " + name + " " + so + s + se); } } - public void sendHeader(String name) - { - sendHeader(name,46); + public void sendHeader(String name) { + sendHeader(name, 46); } public void sendDecreeHelp(VirtualDecreeCommand v) { int m = v.getNodes().size(); - if(v.getNodes().isNotEmpty()) - { + if (v.getNodes().isNotEmpty()) { sendHeader(Form.capitalize(v.getName()) + " Help"); - if(isPlayer() && v.getParent() != null) - { - sendMessageRaw("Click to go back to <#3299bf>" + Form.capitalize(v.getParent().getName()) + " Help" +"'><#f58571>〈 Back"); + if (isPlayer() && v.getParent() != null) { + sendMessageRaw("Click to go back to <#3299bf>" + Form.capitalize(v.getParent().getName()) + " Help" + "'><#f58571>〈 Back"); } - for(VirtualDecreeCommand i : v.getNodes()) - { - if(isPlayer()) - { + for (VirtualDecreeCommand i : v.getNodes()) { + if (isPlayer()) { //@builder String s = ( - " "<#42ecf5>" + f).toString(", ") + "\n" - + "<#3fe05a>✎ <#6ad97d>" + i.getDescription() + "\n" - + "<#bbe03f>✒ <#a8e0a2>" + (i.isNode() - ? ((i.getNode().getParameters().isEmpty() - ? "There are no parameters." - : "Hover over all of the parameters to learn more.") + "\n") - : "This is a command category. Run <#98eda5>" + i.getPath()) - + (i.isNode() - ? (i.getNode().getParameters().isNotEmpty()) - ? "<#aebef2>✦ <#5ef288>" + " "<#42ecf5>" + f).toString(", ") + "\n" + + "<#3fe05a>✎ <#6ad97d>" + i.getDescription() + "\n" + + "<#bbe03f>✒ <#a8e0a2>" + (i.isNode() + ? ((i.getNode().getParameters().isEmpty() + ? "There are no parameters." + : "Hover over all of the parameters to learn more.") + "\n") + : "This is a command category. Run <#98eda5>" + i.getPath()) + + (i.isNode() + ? (i.getNode().getParameters().isNotEmpty()) + ? "<#aebef2>✦ <#5ef288>" + i.getParentPath() + " <#42ecf5>" + i.getName() + " " + i.getNode().getParameters().convert((f) - -> "<#d665f0>" + f.example()) - .toString(" ") + "\n" - : "" - : "") - + (i.isNode() ? "" + pickRandoms(Math.min(i.getNode().getParameters().size() + 1, 5), i) + "" : "") - + "'>" - + "<#46826a>⇀ " +i.getName() + "" - + (i.isNode() ? - " " + i.getNode().getParameters().convert((f) - -> " "<#d665f0>" + ff).toString(", ") + "\n" + -> "<#d665f0>" + f.example()) + .toString(" ") + "\n" + : "" + : "") + + (i.isNode() ? "" + pickRandoms(Math.min(i.getNode().getParameters().size() + 1, 5), i) + "" : "") + + "'>" + + "<#46826a>⇀ " + i.getName() + "" + + (i.isNode() ? + " " + i.getNode().getParameters().convert((f) + -> " "<#d665f0>" + ff).toString(", ") + "\n" + "<#3fe05a>✎ <#6ad97d>" + f.getDescription() + "\n" - + (f.isRequired() + + (f.isRequired() ? "<#db4321>⚠ <#faa796>This parameter is required." : (f.hasDefault() - ? "<#2181db>✔ <#78dcf0>Defaults to \""+f.getParam().defaultValue()+"\" if undefined." - : "<#a73abd>✔ <#78dcf0>This parameter is optional.")) + "\n" - + (f.isContextual() ? "<#ff9900>➱ <#ffcc00>The value may be derived from environment context \n" : "") - + "<#cc00ff>✢ <#ff33cc>This parameter is of type " + f.getType().getSimpleName() + "\n" - + "'>" - + (f.isRequired() ? "[" : "") - + "" + f.getName() - + (f.isRequired() ? "]" : "") - + "").toString(" ") - : " - Category of Commands" - ) - ); + ? "<#2181db>✔ <#78dcf0>Defaults to \"" + f.getParam().defaultValue() + "\" if undefined." + : "<#a73abd>✔ <#78dcf0>This parameter is optional.")) + "\n" + + (f.isContextual() ? "<#ff9900>➱ <#ffcc00>The value may be derived from environment context \n" : "") + + "<#cc00ff>✢ <#ff33cc>This parameter is of type " + f.getType().getSimpleName() + "\n" + + "'>" + + (f.isRequired() ? "[" : "") + + "" + f.getName() + + (f.isRequired() ? "]" : "") + + "").toString(" ") + : " - Category of Commands" + ) + ); //@done sendMessageRaw(s); System.out.println(s); - } - - else - { + } else { sendMessage(i.getPath() + "()"); } } - } - - else - { + } else { sendMessage(C.RED + "There are no subcommands in this group! Contact support, this is a command design issue!"); } } diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java b/src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java index 70f048036..ebab8ff29 100644 --- a/src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java +++ b/src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java @@ -26,8 +26,8 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; -public class DownloadJob implements Job{ - private DL.Download download; +public class DownloadJob implements Job { + private final DL.Download download; private int tw; private int cw; @@ -38,13 +38,9 @@ public class DownloadJob implements Job{ download.monitor(new DownloadMonitor() { @Override public void onUpdate(DL.DownloadState state, double progress, long elapsed, long estimated, long bps, long iobps, long size, long downloaded, long buffer, double bufferuse) { - if(size == -1) - { + if (size == -1) { tw = 1; - } - - else - { + } else { tw = (int) (size / 100); cw = (int) (downloaded / 100); } @@ -61,8 +57,7 @@ public class DownloadJob implements Job{ public void execute() { try { download.start(); - while(download.isState(DL.DownloadState.DOWNLOADING)) - { + while (download.isState(DL.DownloadState.DOWNLOADING)) { download.downloadChunk(); } } catch (IOException e) { diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java b/src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java index 309841b88..33864d86b 100644 --- a/src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java +++ b/src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java @@ -18,7 +18,6 @@ package com.volmit.iris.util.scheduling.jobs; -import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.plugin.VolmitSender; import com.volmit.iris.util.scheduling.J; @@ -26,8 +25,7 @@ import com.volmit.iris.util.scheduling.PrecisionStopwatch; import java.util.concurrent.CompletableFuture; -public interface Job -{ +public interface Job { String getName(); void execute(); @@ -36,35 +34,27 @@ public interface Job int getTotalWork(); - default int getWorkRemaining() - { + default int getWorkRemaining() { return getTotalWork() - getWorkCompleted(); } int getWorkCompleted(); - default String getProgressString() - { + default String getProgressString() { return Form.pc(getProgress(), 0); } - default double getProgress() - { - return (double)getWorkCompleted() / (double)getTotalWork(); + default double getProgress() { + return (double) getWorkCompleted() / (double) getTotalWork(); } - default void execute(VolmitSender sender) - { + default void execute(VolmitSender sender) { PrecisionStopwatch p = PrecisionStopwatch.start(); CompletableFuture f = J.afut(this::execute); int c = J.ar(() -> { - if(sender.isPlayer()) - { + if (sender.isPlayer()) { sender.sendProgress(getProgress(), getName()); - } - - else - { + } else { sender.sendMessage(getName() + ": " + getProgressString()); } }, sender.isPlayer() ? 0 : 20); diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java b/src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java index 0accefafb..9c5a44f1f 100644 --- a/src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java +++ b/src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java @@ -25,13 +25,11 @@ public class JobCollection implements Job { private String status; private final KList jobs; - public JobCollection(String name, Job... jobs) - { + public JobCollection(String name, Job... jobs) { this(name, new KList<>(jobs)); } - public JobCollection(String name, KList jobs) - { + public JobCollection(String name, KList jobs) { this.name = name; status = null; this.jobs = new KList<>(jobs); @@ -44,8 +42,7 @@ public class JobCollection implements Job { @Override public void execute() { - for(Job i : jobs) - { + for (Job i : jobs) { status = i.getName(); i.execute(); } diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java b/src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java index 5fb92c5f3..4ee511545 100644 --- a/src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java +++ b/src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java @@ -25,21 +25,18 @@ public abstract class QueueJob implements Job { private int totalWork; private int completed; - public QueueJob() - { + public QueueJob() { totalWork = 0; completed = 0; queue = new KList<>(); } - public void queue(T t) - { + public void queue(T t) { queue.add(t); totalWork++; } - public void queue(KList f) - { + public void queue(KList f) { queue.addAll(f); totalWork += f.size(); } @@ -49,8 +46,7 @@ public abstract class QueueJob implements Job { @Override public void execute() { totalWork = queue.size(); - while(queue.isNotEmpty()) - { + while (queue.isNotEmpty()) { execute(queue.pop()); completeWork(); } diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java b/src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java index c422b0ecd..549a940df 100644 --- a/src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java +++ b/src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java @@ -18,13 +18,12 @@ package com.volmit.iris.util.scheduling.jobs; -public class SingleJob implements Job{ +public class SingleJob implements Job { private boolean done; private final String name; private final Runnable runnable; - public SingleJob(String name, Runnable runnable) - { + public SingleJob(String name, Runnable runnable) { this.name = name; done = false; this.runnable = runnable;