geforkt von Mirrors/Paper
57dd397155
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: b999860d SPIGOT-2304: Add LootGenerateEvent CraftBukkit Changes:77fd87e4
SPIGOT-2304: Implement LootGenerateEventa1a705ee
SPIGOT-5566: Doused campfires & fires should call EntityChangeBlockEvent41712edd
SPIGOT-5707: PersistentDataHolder not Persistent on API dropped Item
70 Zeilen
2.3 KiB
Diff
70 Zeilen
2.3 KiB
Diff
From af529b775e493033aad54122093c513126351a22 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Wed, 25 Jul 2018 01:36:07 -0400
|
|
Subject: [PATCH] Expand Location Manipulation API
|
|
|
|
Adds set(x, y, z), add(base, x, y, z), subtract(base, x, y, z);
|
|
|
|
diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java
|
|
index ac3c8eef5..f87ecd0a7 100644
|
|
--- a/src/main/java/org/bukkit/Location.java
|
|
+++ b/src/main/java/org/bukkit/Location.java
|
|
@@ -546,6 +546,54 @@ public class Location implements Cloneable, ConfigurationSerializable {
|
|
public boolean isChunkLoaded() { return this.getWorld().isChunkLoaded(locToBlock(x) >> 4, locToBlock(z) >> 4); } // Paper
|
|
|
|
// Paper start
|
|
+
|
|
+ /**
|
|
+ * Sets the position of this Location and returns itself
|
|
+ *
|
|
+ * This mutates this object, clone first.
|
|
+ * @param x X coordinate
|
|
+ * @param y Y coordinate
|
|
+ * @param z Z coordinate
|
|
+ * @return self (not cloned)
|
|
+ */
|
|
+ @NotNull
|
|
+ public Location set(double x, double y, double z) {
|
|
+ this.x = x;
|
|
+ this.y = y;
|
|
+ this.z = z;
|
|
+ return this;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Takes the x/y/z from base and adds the specified x/y/z to it and returns self
|
|
+ *
|
|
+ * This mutates this object, clone first.
|
|
+ * @param base The base coordinate to modify
|
|
+ * @param x X coordinate to add to base
|
|
+ * @param y Y coordinate to add to base
|
|
+ * @param z Z coordinate to add to base
|
|
+ * @return self (not cloned)
|
|
+ */
|
|
+ @NotNull
|
|
+ public Location add(@NotNull Location base, double x, double y, double z) {
|
|
+ return this.set(base.x + x, base.y + y, base.z + z);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Takes the x/y/z from base and subtracts the specified x/y/z to it and returns self
|
|
+ *
|
|
+ * This mutates this object, clone first.
|
|
+ * @param base The base coordinate to modify
|
|
+ * @param x X coordinate to subtract from base
|
|
+ * @param y Y coordinate to subtract from base
|
|
+ * @param z Z coordinate to subtract from base
|
|
+ * @return self (not cloned)
|
|
+ */
|
|
+ @NotNull
|
|
+ public Location subtract(@NotNull Location base, double x, double y, double z) {
|
|
+ return this.set(base.x - x, base.y - y, base.z - z);
|
|
+ }
|
|
+
|
|
/**
|
|
* @return A new location where X/Y/Z are on the Block location (integer value of X/Y/Z)
|
|
*/
|
|
--
|
|
2.26.2
|
|
|