diff options
author | md_5 <md_5@bigpond.com> | 2012-03-12 10:39:36 +1100 |
---|---|---|
committer | md_5 <md_5@bigpond.com> | 2012-03-12 10:39:36 +1100 |
commit | 78f4820876f42f7b50bf88f64afd45bee939e4e4 (patch) | |
tree | 317cd3bcc63fc9e86a6efbcb5e13a50ed9efbaaf /EssentialsAntiCheat/src/com/earth2me/essentials/anticheat/data/SimpleLocation.java | |
parent | 26409058467e9f34aa65a08df3c68a58129d22ba (diff) | |
download | Essentials-78f4820876f42f7b50bf88f64afd45bee939e4e4.tar Essentials-78f4820876f42f7b50bf88f64afd45bee939e4e4.tar.gz Essentials-78f4820876f42f7b50bf88f64afd45bee939e4e4.tar.lz Essentials-78f4820876f42f7b50bf88f64afd45bee939e4e4.tar.xz Essentials-78f4820876f42f7b50bf88f64afd45bee939e4e4.zip |
Initial formatted and slightly tweaked version of @evenprime 's NoCheat. Will be intergrated into the main Essentials as soon as possible
Diffstat (limited to 'EssentialsAntiCheat/src/com/earth2me/essentials/anticheat/data/SimpleLocation.java')
-rw-r--r-- | EssentialsAntiCheat/src/com/earth2me/essentials/anticheat/data/SimpleLocation.java | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/EssentialsAntiCheat/src/com/earth2me/essentials/anticheat/data/SimpleLocation.java b/EssentialsAntiCheat/src/com/earth2me/essentials/anticheat/data/SimpleLocation.java new file mode 100644 index 000000000..34923051e --- /dev/null +++ b/EssentialsAntiCheat/src/com/earth2me/essentials/anticheat/data/SimpleLocation.java @@ -0,0 +1,76 @@ +package com.earth2me.essentials.anticheat.data; + +import org.bukkit.Location; +import org.bukkit.block.Block; + + +/** + * To avoid constantly creating and referencing "Location" objects, which in turn reference a whole lot of other + * unnecessary stuff, rather use our own "Location" object which is easily reusable. + * + */ +public final class SimpleLocation +{ + public int x; + public int y; + public int z; + + public SimpleLocation() + { + reset(); + } + + @Override + public final boolean equals(Object object) + { + if (!(object instanceof SimpleLocation)) + { + return false; + } + + SimpleLocation simpleLocation = (SimpleLocation)object; + + if (!isSet() && !simpleLocation.isSet()) + { + return true; + } + else if (!isSet() || !simpleLocation.isSet()) + { + return false; + } + + return simpleLocation.x == x && simpleLocation.y == y && simpleLocation.z == z; + } + + @Override + public final int hashCode() + { + return x * 1000000 + y * 1000 + z; + } + + public final void set(Block block) + { + x = block.getX(); + y = block.getY(); + z = block.getZ(); + } + + public final void setLocation(Location location) + { + x = location.getBlockX(); + y = location.getBlockY(); + z = location.getBlockZ(); + } + + public final boolean isSet() + { + return x != Integer.MAX_VALUE; + } + + public final void reset() + { + x = Integer.MAX_VALUE; + y = Integer.MAX_VALUE; + z = Integer.MAX_VALUE; + } +} |