diff --git a/.gitignore b/.gitignore index ee31d72..beb7779 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,5 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* -/.idea +.idea/ +target/ diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF deleted file mode 100644 index dc479ec..0000000 --- a/src/main/java/META-INF/MANIFEST.MF +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -Class-Path: gson-2.8.6.jar - diff --git a/src/main/java/aldrigos/mc/worldguard/Cuboid.java b/src/main/java/aldrigos/mc/worldguard/Cuboid.java deleted file mode 100644 index c7d7208..0000000 --- a/src/main/java/aldrigos/mc/worldguard/Cuboid.java +++ /dev/null @@ -1,30 +0,0 @@ -package aldrigos.mc.worldguard; - -import cn.nukkit.math.Vector3; - -public class Cuboid { - public Vector3Adapter P1, P2; - - public boolean contains(Vector3 block){ - double x1, x2, y1, y2, z1, z2; - x1 = Math.min(P1.x, P2.x); - x2 = Math.max(P1.x, P2.x); - - if(block.x < x1 || block.x > x2) - return false; - - y1 = Math.min(P1.y, P2.y); - y2 = Math.max(P1.y, P2.y); - - if(block.y < y1 || block.y > y2) - return false; - - z1 = Math.min(P1.z, P2.z); - z2 = Math.max(P1.z, P2.z); - - if(block.z < z1 || block.z > z2) - return false; - - return true; - } -} diff --git a/src/main/java/aldrigos/mc/worldguard/Region.java b/src/main/java/aldrigos/mc/worldguard/Region.java index 2f9aa15..5052078 100644 --- a/src/main/java/aldrigos/mc/worldguard/Region.java +++ b/src/main/java/aldrigos/mc/worldguard/Region.java @@ -1,5 +1,7 @@ package aldrigos.mc.worldguard; +import aldrigos.mc.worldedit.Cuboid; + import java.util.Collection; import java.util.HashSet; diff --git a/src/main/java/aldrigos/mc/worldguard/Utils.java b/src/main/java/aldrigos/mc/worldguard/Utils.java index 06077c6..997d426 100644 --- a/src/main/java/aldrigos/mc/worldguard/Utils.java +++ b/src/main/java/aldrigos/mc/worldguard/Utils.java @@ -1,7 +1,5 @@ package aldrigos.mc.worldguard; -import cn.nukkit.math.Vector3; - import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; @@ -14,10 +12,6 @@ public static Collection flatten(Collection> c){ return result; } - public static String toString(Vector3 p){ - return "X:" + p.x + " Y:" + p.y + " Z:" + p.z; - } - public static String getTrace(Throwable e){ var sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw)); diff --git a/src/main/java/aldrigos/mc/worldguard/Vector3Adapter.java b/src/main/java/aldrigos/mc/worldguard/Vector3Adapter.java deleted file mode 100644 index 3e608bc..0000000 --- a/src/main/java/aldrigos/mc/worldguard/Vector3Adapter.java +++ /dev/null @@ -1,19 +0,0 @@ -package aldrigos.mc.worldguard; - -import cn.nukkit.math.Vector3; - -public class Vector3Adapter { - public double x, y, z; - - public Vector3Adapter(){} - - public Vector3Adapter(Vector3 v){ - x = v.x; - y = v.y; - z = v.z; - } - - public Vector3 toVector3(){ - return new Vector3(x,y,z); - } -} diff --git a/src/main/java/aldrigos/mc/worldguard/WorldGuardPlugin.java b/src/main/java/aldrigos/mc/worldguard/WorldGuardPlugin.java index 0081da9..bbd240e 100644 --- a/src/main/java/aldrigos/mc/worldguard/WorldGuardPlugin.java +++ b/src/main/java/aldrigos/mc/worldguard/WorldGuardPlugin.java @@ -1,5 +1,6 @@ package aldrigos.mc.worldguard; +import aldrigos.mc.worldedit.*; import aldrigos.mc.worldguard.commands.*; import aldrigos.mc.worldguard.listeners.*; import cn.nukkit.plugin.PluginBase; @@ -7,12 +8,10 @@ import com.google.gson.Gson; import java.io.*; -import java.util.HashMap; -import java.util.Map; public class WorldGuardPlugin extends PluginBase { private static final String regionFile = "plugins/worldguard/regions.json"; - public final Map Selection= new HashMap<>(); + public WorldEdit worldEdit; public RegionManager RegionManager; private Logger log; @@ -53,6 +52,8 @@ public void onEnable(){ return; } + worldEdit = ((WorldEditPlugin) getServer().getPluginManager().getPlugin("SWorldEdit")).getApi(); + var pm = this.getServer().getPluginManager(); pm.registerEvents(new InteractionListener(this), this); pm.registerEvents(new BlockListener(this), this); diff --git a/src/main/java/aldrigos/mc/worldguard/commands/RegionCommand.java b/src/main/java/aldrigos/mc/worldguard/commands/RegionCommand.java index 3b6dd9d..eb5d7e0 100644 --- a/src/main/java/aldrigos/mc/worldguard/commands/RegionCommand.java +++ b/src/main/java/aldrigos/mc/worldguard/commands/RegionCommand.java @@ -1,5 +1,6 @@ package aldrigos.mc.worldguard.commands; +import aldrigos.mc.worldedit.WorldEdit; import aldrigos.mc.worldguard.*; import aldrigos.mc.worldguard.exceptions.AlreadyExistException; import cn.nukkit.Player; @@ -8,19 +9,18 @@ import java.util.Arrays; import java.util.LinkedList; -import java.util.Map; import java.util.regex.Pattern; public class RegionCommand extends Command { public final RegionManager rgm; - public final Map selection; + public final WorldEdit we; public final Logger log; private final FlagsCommands flagsCmds; public RegionCommand(WorldGuardPlugin p){ super("rg"); rgm = p.RegionManager; - selection = p.Selection; + we = p.worldEdit; log = p.getLogger(); flagsCmds = new FlagsCommands(p); } @@ -66,7 +66,7 @@ private boolean create(CommandSender sender, LinkedList args) { return false; } - var cuboid = selection.get(player.getId()); + var cuboid = we.getSelection(player.getId()); if(cuboid == null || cuboid.P1 == null || cuboid.P2 == null){ Messages.NO_SELECTION.send(player); return false; @@ -161,7 +161,7 @@ private boolean update(CommandSender sender, LinkedList args) { return false; } - var cuboid = selection.get(player.getId()); + var cuboid = we.getSelection(player.getId()); if(cuboid == null || cuboid.P1 == null || cuboid.P2 == null){ Messages.NO_SELECTION.send(player); return false; diff --git a/src/main/java/aldrigos/mc/worldguard/commands/WgCommand.java b/src/main/java/aldrigos/mc/worldguard/commands/WgCommand.java index d6c1b3f..0697f7a 100644 --- a/src/main/java/aldrigos/mc/worldguard/commands/WgCommand.java +++ b/src/main/java/aldrigos/mc/worldguard/commands/WgCommand.java @@ -1,55 +1,46 @@ package aldrigos.mc.worldguard.commands; -import aldrigos.mc.worldguard.Cuboid; import aldrigos.mc.worldguard.*; import cn.nukkit.command.*; import cn.nukkit.utils.Logger; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.Map; - public class WgCommand extends Command { + private static final String help = "[WG]Commands list:\n" + + "/wg info : about this plugin\n"+ + "/rg create : create a new region\n" + + "/rg delete : delete a region\n"+ + "/rg flag : list all available flags\n"+ + "/rg flag : add a flag to region\n"+ + "/rg flags : show set flags for the region\n"+ + "/rg update : change region cuboid with current selection"; + public final RegionManager rgm; - public final Map selection; public final Logger log; public WgCommand(WorldGuardPlugin p){ super("wg"); rgm = p.RegionManager; - selection = p.Selection; log = p.getLogger(); } @Override public boolean execute(CommandSender sender, String cmd, String[] args) { if(args.length < 1){ - sender.sendMessage("[WG]Commands list:\n" + - "/wg info : about this plugin\n"+ - "/rg create : create a new region\n" + - "/rg delete : delete a region\n"+ - "/rg flag : list all available flags\n"+ - "/rg flag : add a flag to region\n"+ - "/rg flags : show set flags for the region\n"+ - "/rg update : change region cuboid with current selection" - ); + sender.sendMessage(help); return true; } - final String sub = args[0]; - - switch (sub){ + switch (args[0]){ case "info": sender.sendMessage("[WG]WorldGuard port for Nukkit by Aldrigo Raffaele"); return true; + case "?": + case "help": + sender.sendMessage(help); + return true; default: sender.sendMessage("[WG]Unknown wg sub-command: "+ cmd); return false; } - - /*var subArgs = new LinkedList(Arrays.asList(args)); - subArgs.removeFirst(); - - return executor.execute(sender, cmd, subArgs);*/ } } diff --git a/src/main/java/aldrigos/mc/worldguard/listeners/BlockListener.java b/src/main/java/aldrigos/mc/worldguard/listeners/BlockListener.java index 548c9ab..777c353 100644 --- a/src/main/java/aldrigos/mc/worldguard/listeners/BlockListener.java +++ b/src/main/java/aldrigos/mc/worldguard/listeners/BlockListener.java @@ -11,11 +11,9 @@ public class BlockListener implements Listener { public final RegionManager rgm; - private final Map selection; public BlockListener(WorldGuardPlugin p){ rgm = p.RegionManager; - selection = p.Selection; } private Region check(Player p, BlockEvent e){ @@ -40,18 +38,6 @@ public void onPlace(BlockPlaceEvent e){ @EventHandler public void onBreak(BlockBreakEvent e){ var player = e.getPlayer(); - //check if player has wg rg stick - if(player.isCreative() && e.getItem().getId() == ItemID.STICK){ - var clickPosition = e.getBlock().getLocation(); - if(!selection.containsKey(player.getId())) - selection.put(player.getId(), new Cuboid()); - - selection.get(player.getId()).P1 = new Vector3Adapter(clickPosition); - player.sendMessage(TextFormat.DARK_PURPLE+"[WG]First position set "+Utils.toString(clickPosition)+TextFormat.WHITE); - - e.setCancelled(); - return; - } var region = check(player, e); if(region == null) diff --git a/src/main/java/aldrigos/mc/worldguard/listeners/InteractionListener.java b/src/main/java/aldrigos/mc/worldguard/listeners/InteractionListener.java index 92c3844..7587c9f 100644 --- a/src/main/java/aldrigos/mc/worldguard/listeners/InteractionListener.java +++ b/src/main/java/aldrigos/mc/worldguard/listeners/InteractionListener.java @@ -1,13 +1,10 @@ package aldrigos.mc.worldguard.listeners; import aldrigos.mc.worldguard.*; -import aldrigos.mc.worldguard.Utils; import cn.nukkit.Player; -import cn.nukkit.block.BlockID; import cn.nukkit.event.*; import cn.nukkit.event.entity.*; import cn.nukkit.event.player.*; -import cn.nukkit.item.ItemID; import cn.nukkit.utils.*; import java.util.Map; @@ -16,14 +13,12 @@ public class InteractionListener implements Listener { private final RegionManager rgm; - private final Map selection; private final Logger log; private final WorldGuardPlugin wg; public InteractionListener(WorldGuardPlugin p){ rgm = p.RegionManager; log = p.getLogger(); - selection = p.Selection; wg = p; } @@ -50,30 +45,6 @@ public void onAttack(EntityDamageByEntityEvent e){ } } - @EventHandler - public void onPlayerInteract(PlayerInteractEvent e){ - var player = e.getPlayer(); - var clickPosition = e.getBlock().getLocation(); - - if(!player.isCreative()) - return; - - var item = e.getItem(); - //check if player has wg rg stick - if(item == null || item.getId() != ItemID.STICK) - return; - - //if(item.getCustomBlockData().) - - if(e.getAction() == RIGHT_CLICK_BLOCK){ - if(!selection.containsKey(player.getId())) - selection.put(player.getId(), new Cuboid()); - - selection.get(player.getId()).P2 = new Vector3Adapter(clickPosition); - player.sendMessage(TextFormat.DARK_PURPLE+"[WG]Second position set "+ Utils.toString(clickPosition)+TextFormat.WHITE); - } - } - @EventHandler public void onExplode(ExplosionPrimeEvent e){ var reg = rgm.getBlockRegion(e.getEntity().getPosition()); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a425dd2..777394b 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,8 +1,9 @@ name: WorldGuard main: aldrigos.mc.worldguard.WorldGuardPlugin -version: "0.1.2.1" +version: "0.2.0.0" api: ["1.0.5"] load: POSTWORLD +depend: [ "SWorldEdit" ] author: Aldrigo Raffaele description: WorldGuard Nukkit Port website: https://github.com/Raffa50/NukkitX-WorldGuard diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml index a425dd2..777394b 100644 --- a/target/classes/plugin.yml +++ b/target/classes/plugin.yml @@ -1,8 +1,9 @@ name: WorldGuard main: aldrigos.mc.worldguard.WorldGuardPlugin -version: "0.1.2.1" +version: "0.2.0.0" api: ["1.0.5"] load: POSTWORLD +depend: [ "SWorldEdit" ] author: Aldrigo Raffaele description: WorldGuard Nukkit Port website: https://github.com/Raffa50/NukkitX-WorldGuard