commit 2933e22773ece32791406c2e9ae97b1715d4b5e5
parent fda176b55b0474e543a05b0670158fcb753691e4
Author: typable <contact@typable.dev>
Date: Fri, 13 Jan 2023 21:53:07 +0100
Fixed warp distance calculation bug
Diffstat:
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());
+ }
}