NEWS: Welcome to my new homepage! <3

Fixed warp distance calculation bug - poppy - A feature-rich Minecraft plugin which enhances gaming experience

poppy

A feature-rich Minecraft plugin which enhances gaming experience
git clone git://192.168.2.2/poppy
Log | Files | Refs | README

commit 2933e22773ece32791406c2e9ae97b1715d4b5e5
parent fda176b55b0474e543a05b0670158fcb753691e4
Author: typable <contact@typable.dev>
Date:   Fri, 13 Jan 2023 21:53:07 +0100

Fixed warp distance calculation bug

Diffstat:
Mres/plugin.yml | 2+-
Msrc/poppy/Main.java | 10+++++-----
Msrc/poppy/Utils.java | 16++++++++++++++++
3 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/res/plugin.yml b/res/plugin.yml @@ -1,6 +1,6 @@ main: poppy.Main name: poppy -version: 0.0.1 +version: 0.1.0 author: typable, chunksize api-version: 1.16 commands: diff --git a/src/poppy/Main.java b/src/poppy/Main.java @@ -40,7 +40,7 @@ public class Main extends JavaPlugin public void onEnable() { plugin = this; - config = new Config("config/minecraft-hub.yml"); + config = new Config("config/poppy.yml"); pluginManager = Bukkit.getPluginManager(); @@ -95,7 +95,7 @@ public class Main extends JavaPlugin case "sethome": return setHome(player, args); case "setwarp": - return addWarppoint(player, args); + return setWarppoint(player, args); default: return false; } @@ -226,7 +226,7 @@ public class Main extends JavaPlugin } final String name = args[0]; - final Location location = config.getWarp(name); + final Location location = config.getWarp(name.toLowerCase()); if(location == null) { @@ -257,7 +257,7 @@ public class Main extends JavaPlugin return true; } - private boolean addWarppoint(final Player player, final String[] args) + private boolean setWarppoint(final Player player, final String[] args) { if(args.length != 1) { @@ -274,7 +274,7 @@ public class Main extends JavaPlugin try { - if(!config.setWarp(name, player.getLocation())) + if(!config.setWarp(name.toLowerCase(), player.getLocation())) { player.sendMessage(ChatColor.RED + "Warp point " + name + " already exists!"); return true; diff --git a/src/poppy/Utils.java b/src/poppy/Utils.java @@ -169,6 +169,11 @@ public class Utils public static int calcTravelFee(final Location from, final Location to) { + if(!isLocationInSameWorld(from, to)) + { + return 0; + } + final Double distance = from.distance(to); int fee = (int) Math.floor(distance / (Constants.BLOCKS_PER_CHUNK * Constants.CHUNKS_PER_EMERALD)); @@ -187,6 +192,12 @@ public class Utils public static boolean travelTo(final Plugin plugin, final Player player, final Location location) { + if(!isLocationInSameWorld(player.getLocation(), location)) + { + player.sendMessage(ChatColor.RED + "The warppoint cannot be located in this world!"); + return false; + } + final int fee = Utils.calcTravelFee(player.getLocation(), location); final String unit = fee == 1 ? "emerald" : "emeralds"; @@ -231,4 +242,9 @@ public class Utils return true; } + + public static boolean isLocationInSameWorld(final Location from, final Location to) + { + return from.getWorld().getName().equals(to.getWorld().getName()); + } }