From 24a1f83d3508d2875519aeafa273c60e6b8534bc Mon Sep 17 00:00:00 2001
From: Dawson <30784509+funkemunky@users.noreply.github.com>
Date: Wed, 22 Mar 2023 15:50:05 -0400
Subject: [PATCH] Shit
---
Anticheat/pom.xml | 14 +-
.../ac/check/impl/combat/aim/AimB.java | 2 -
.../impl/combat/autoclicker/AutoclickerA.java | 2 +-
.../impl/combat/autoclicker/AutoclickerB.java | 2 +-
.../ac/check/impl/combat/killaura/KABot.java | 15 +-
.../check/impl/movement/nofall/NoFallB.java | 5 +-
.../check/impl/movement/speed/Prediction.java | 13 +-
.../impl/movement/velocity/VelocityA.java | 4 +-
.../impl/movement/velocity/VelocityB.java | 2 +-
.../ac/check/impl/packet/order/Timer.java | 2 +-
.../ac/check/impl/packet/order/UseEntity.java | 2 +-
.../brighten/ac/check/impl/world/BlockA.java | 9 +-
.../brighten/ac/check/impl/world/BlockB.java | 4 +-
.../dev/brighten/ac/command/LogsCommand.java | 2 +-
.../java/dev/brighten/ac/data/APlayer.java | 1 -
.../ac/data/info/BlockInformation.java | 6 +-
.../ac/data/info/GeneralInformation.java | 2 +-
.../ac/handler/EntityLocationHandler.java | 19 +-
.../brighten/ac/handler/MovementHandler.java | 36 +-
.../ac/handler/block/BlockUpdateHandler.java | 2 +-
.../java/dev/brighten/ac/logging/Log.java | 4 +-
.../ac/packet/wrapper/impl/Processor_18.java | 63 +--
.../packet/wrapper/objects/EnumParticle.java | 1 +
.../wrapper/objects/WrappedEnumDirection.java | 2 +-
.../out/WPacketPlayOutNamedEntitySpawn.java | 1 -
.../java/dev/brighten/ac/utils/Color.java | 2 -
.../dev/brighten/ac/utils/EntityLocation.java | 1 +
.../dev/brighten/ac/utils/MathHelper.java | 501 ------------------
.../java/dev/brighten/ac/utils/MiscUtils.java | 13 +
.../dev/brighten/ac/utils/MovementUtils.java | 1 +
.../brighten/ac/utils/ReflectionsUtil.java | 106 ----
.../java/dev/brighten/ac/utils/Vec3D.java | 18 +-
.../java/dev/brighten/ac/utils/json/CDL.java | 5 -
.../dev/brighten/ac/utils/json/Cookie.java | 4 -
.../brighten/ac/utils/json/CookieList.java | 5 -
.../java/dev/brighten/ac/utils/json/HTTP.java | 4 -
.../brighten/ac/utils/json/HTTPTokener.java | 3 -
.../dev/brighten/ac/utils/json/JSONArray.java | 4 -
.../dev/brighten/ac/utils/json/JSONML.java | 6 -
.../brighten/ac/utils/json/JSONStringer.java | 2 -
.../brighten/ac/utils/json/JSONTokener.java | 4 -
.../brighten/ac/utils/json/JSONWriter.java | 3 -
.../java/dev/brighten/ac/utils/json/XML.java | 5 -
.../brighten/ac/utils/json/XMLTokener.java | 4 -
.../brighten/ac/utils/math/FloatVector.java | 2 +-
.../dev/brighten/ac/utils/math/IntVector.java | 2 +-
.../java/dev/brighten/ac/utils/menu/Menu.java | 1 +
.../brighten/ac/utils/menu/MenuListener.java | 2 +-
.../ac/utils/menu/preset/SettingsMenu.java | 2 +-
.../brighten/ac/utils/world/BlockData.java | 5 +-
.../utils/world/types/SimpleCollisionBox.java | 11 +-
Compat-1_19_R3/pom.xml | 37 ++
Compat/pom.xml | 59 +++
.../brighten/ac/packet/ProtocolVersion.java | 0
.../java/dev/brighten/ac/utils/FastTrig.java | 0
.../java/dev/brighten/ac/utils/KLocation.java | 132 +++++
.../java/dev/brighten/ac/utils/MathUtils.java | 73 +--
.../java/dev/brighten/ac/utils/Tuple.java | 5 +-
.../brighten/ac/utils/objects/BiSupplier.java | 0
.../brighten/ac/utils/objects/Interval.java | 0
.../ac/utils/objects/MethodFunction.java | 19 +-
.../ac/utils/objects/MultiFunction.java | 0
.../ac/utils/objects/QuadFunction.java | 0
.../ac/utils/objects/RemoteClassLoader.java | 0
.../ac/utils/objects/TriFunction.java | 0
.../ac/utils/objects/VariableValue.java | 0
.../evicting/ConcurrentEvictingList.java | 0
.../evicting/ConcurrentEvictingMap.java | 0
.../utils/objects/evicting/EvictingList.java | 0
.../utils/objects/evicting/EvictingMap.java | 0
.../filtered/ConcurrentFilteredList.java | 0
.../filtered/ConcurrentFilteredSet.java | 0
.../utils/objects/filtered/FilteredList.java | 0
.../utils/objects/filtered/FilteredSet.java | 0
.../objects/listmap/ConcurrentListMap.java | 0
.../ac/utils/objects/listmap/HashListMap.java | 0
.../ac/utils/objects/listmap/ListMap.java | 0
.../ac/utils/reflections/Reflections.java | 6 +-
.../reflections/impl/CraftReflection.java | 2 +-
.../reflections/impl/MinecraftReflection.java | 56 +-
.../utils/reflections/types/WrappedClass.java | 0
.../reflections/types/WrappedConstructor.java | 0
.../utils/reflections/types/WrappedField.java | 0
.../reflections/types/WrappedMethod.java | 0
pom.xml | 2 +
85 files changed, 446 insertions(+), 876 deletions(-)
delete mode 100644 Anticheat/src/main/java/dev/brighten/ac/utils/MathHelper.java
create mode 100644 Compat-1_19_R3/pom.xml
create mode 100644 Compat/pom.xml
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/packet/ProtocolVersion.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/FastTrig.java (100%)
create mode 100644 Compat/src/main/java/dev/brighten/ac/utils/KLocation.java
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/MathUtils.java (94%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/Tuple.java (87%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/BiSupplier.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/Interval.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/MethodFunction.java (82%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/MultiFunction.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/QuadFunction.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/RemoteClassLoader.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/TriFunction.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/VariableValue.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/evicting/ConcurrentEvictingList.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/evicting/ConcurrentEvictingMap.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/evicting/EvictingList.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/evicting/EvictingMap.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/filtered/ConcurrentFilteredList.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/filtered/ConcurrentFilteredSet.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/filtered/FilteredList.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/filtered/FilteredSet.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/listmap/ConcurrentListMap.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/listmap/HashListMap.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/objects/listmap/ListMap.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/reflections/Reflections.java (98%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/reflections/impl/CraftReflection.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/reflections/impl/MinecraftReflection.java (92%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedClass.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedConstructor.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedField.java (100%)
rename {Anticheat => Compat}/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedMethod.java (100%)
diff --git a/Anticheat/pom.xml b/Anticheat/pom.xml
index ecbf5d3..19344bd 100644
--- a/Anticheat/pom.xml
+++ b/Anticheat/pom.xml
@@ -94,7 +94,13 @@
dev.brighten.ac
API
- 1.0-SNAPSHOT
+ ${version}
+ compile
+
+
+ dev.brighten.ac
+ Compat
+ ${version}
compile
@@ -109,12 +115,6 @@
1.0-SNAPSHOT
compile
-
- me.hydro
- emulator
- 1.2-neo
- compile
-
org.github.spigot
1.13
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/aim/AimB.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/aim/AimB.java
index 231ec68..252b359 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/aim/AimB.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/aim/AimB.java
@@ -1,8 +1,6 @@
package dev.brighten.ac.check.impl.combat.aim;
-import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.Check;
-import dev.brighten.ac.check.CheckData;
import dev.brighten.ac.check.WAction;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInFlying;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/autoclicker/AutoclickerA.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/autoclicker/AutoclickerA.java
index b1858c3..14e3812 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/autoclicker/AutoclickerA.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/autoclicker/AutoclickerA.java
@@ -1,8 +1,8 @@
package dev.brighten.ac.check.impl.combat.autoclicker;
+import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.Check;
import dev.brighten.ac.check.CheckData;
-import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.WAction;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.ProtocolVersion;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/autoclicker/AutoclickerB.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/autoclicker/AutoclickerB.java
index cc24d90..fc9c351 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/autoclicker/AutoclickerB.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/autoclicker/AutoclickerB.java
@@ -1,8 +1,8 @@
package dev.brighten.ac.check.impl.combat.autoclicker;
+import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.Check;
import dev.brighten.ac.check.CheckData;
-import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.WTimedAction;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInArmAnimation;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/killaura/KABot.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/killaura/KABot.java
index 84fe950..2999a4e 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/killaura/KABot.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/combat/killaura/KABot.java
@@ -6,9 +6,12 @@ import dev.brighten.ac.check.CheckData;
import dev.brighten.ac.check.WAction;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInArmAnimation;
+import dev.brighten.ac.packet.wrapper.in.WPacketPlayInFlying;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInUseEntity;
import lombok.val;
+import java.util.List;
+
@CheckData(name = "KillAura (Bot)", checkId = "kabot", type = CheckType.KILLAURA)
public class KABot extends Check {
@@ -24,10 +27,20 @@ public class KABot extends Check {
if(buffer2 > 0) buffer2-= 0.25f;
};
+ WAction flying = packet -> {
+ if(player.getInfo().lastAttack.isNotPassed(20)) {
+ player.getMob().setInvisible(false);
+ } else player.getMob().setInvisible(true);
+ };
+
WAction packet = packet -> {
val optional = player.getEntityLocationHandler().getFakeMob(packet.getEntityId());
- if(optional.isPresent() && player.getEntityLocationHandler().clientHasEntity.get()) {
+ if(optional.isPresent()
+ && (player.getEntityLocationHandler().clientHasEntity.get()
+ || player.getEntityLocationHandler()
+ .getFakeMob(player.getBukkitPlayer().getEntityId())
+ .map(List::size).orElse(0) > 0)) {
if(++buffer > 3) {
flag("Attacked player without attacking bot!");
}
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/nofall/NoFallB.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/nofall/NoFallB.java
index d2313cf..8cd9e23 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/nofall/NoFallB.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/nofall/NoFallB.java
@@ -1,12 +1,11 @@
package dev.brighten.ac.check.impl.movement.nofall;
-import dev.brighten.ac.check.WAction;
+import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.Check;
import dev.brighten.ac.check.CheckData;
-import dev.brighten.ac.api.check.CheckType;
+import dev.brighten.ac.check.WAction;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInFlying;
-import dev.brighten.ac.utils.annotation.Async;
@CheckData(name = "NoFall (B)", checkId = "nofallb", type = CheckType.MOVEMENT)
public class NoFallB extends Check {
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/speed/Prediction.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/speed/Prediction.java
index 24310e6..b56644e 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/speed/Prediction.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/speed/Prediction.java
@@ -5,11 +5,9 @@ import dev.brighten.ac.check.Check;
import dev.brighten.ac.check.CheckData;
import dev.brighten.ac.check.WAction;
import dev.brighten.ac.data.APlayer;
-import dev.brighten.ac.packet.ProtocolVersion;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInFlying;
import dev.brighten.ac.utils.Color;
import dev.brighten.ac.utils.KLocation;
-import dev.brighten.ac.utils.MathUtils;
import dev.brighten.ac.utils.timer.Timer;
import dev.brighten.ac.utils.timer.impl.TickTimer;
import lombok.val;
@@ -20,7 +18,7 @@ import me.hydro.emulator.util.Vector;
public class Prediction extends Check {
private float buffer;
private boolean maybeSkippedPos;
- private int lastFlying;
+ private int lastFlying, notMoveTicks;
private final Timer lastSkipPos = new TickTimer();
public Prediction(APlayer player) {
@@ -28,10 +26,13 @@ public class Prediction extends Check {
}
WAction flying = packet -> {
-
+ if(!packet.isMoved()) {
+ if(++notMoveTicks > 2) {
+ return;
+ }
+ } else notMoveTicks = 0;
check: {
- if(!packet.isMoved()
- || player.getBlockInfo().onClimbable
+ if(player.getBlockInfo().onClimbable
|| player.getInfo().lastLiquid.isNotPassed(2)
|| player.getInfo().isGeneralCancel()) break check;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/velocity/VelocityA.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/velocity/VelocityA.java
index f3a0845..7a8d33c 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/velocity/VelocityA.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/velocity/VelocityA.java
@@ -1,9 +1,9 @@
package dev.brighten.ac.check.impl.movement.velocity;
-import dev.brighten.ac.check.WAction;
+import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.Check;
import dev.brighten.ac.check.CheckData;
-import dev.brighten.ac.api.check.CheckType;
+import dev.brighten.ac.check.WAction;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInFlying;
import org.bukkit.util.Vector;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/velocity/VelocityB.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/velocity/VelocityB.java
index 7e7f188..c9254cd 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/velocity/VelocityB.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/velocity/VelocityB.java
@@ -8,13 +8,13 @@ import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.ProtocolVersion;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInFlying;
import dev.brighten.ac.utils.KLocation;
-import dev.brighten.ac.utils.MathHelper;
import dev.brighten.ac.utils.MathUtils;
import dev.brighten.ac.utils.math.IntVector;
import dev.brighten.ac.utils.timer.Timer;
import dev.brighten.ac.utils.timer.impl.TickTimer;
import lombok.AllArgsConstructor;
import lombok.val;
+import me.hydro.emulator.util.mcp.MathHelper;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_8_R3.util.CraftMagicNumbers;
import org.bukkit.potion.PotionEffectType;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/packet/order/Timer.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/packet/order/Timer.java
index f21a10e..5200d21 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/packet/order/Timer.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/packet/order/Timer.java
@@ -4,8 +4,8 @@ import dev.brighten.ac.Anticheat;
import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.Check;
import dev.brighten.ac.check.CheckData;
-import dev.brighten.ac.check.WTimedAction;
import dev.brighten.ac.check.WAction;
+import dev.brighten.ac.check.WTimedAction;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.ProtocolVersion;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInBlockPlace;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/packet/order/UseEntity.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/packet/order/UseEntity.java
index 8e7a1a8..7807bf9 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/packet/order/UseEntity.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/packet/order/UseEntity.java
@@ -1,8 +1,8 @@
package dev.brighten.ac.check.impl.packet.order;
+import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.Check;
import dev.brighten.ac.check.CheckData;
-import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.WTimedAction;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInFlying;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/world/BlockA.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/world/BlockA.java
index 2961579..9a23396 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/world/BlockA.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/world/BlockA.java
@@ -1,14 +1,17 @@
package dev.brighten.ac.check.impl.world;
-import dev.brighten.ac.check.WAction;
+import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.Check;
import dev.brighten.ac.check.CheckData;
-import dev.brighten.ac.api.check.CheckType;
+import dev.brighten.ac.check.WAction;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.ProtocolVersion;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInBlockPlace;
import dev.brighten.ac.packet.wrapper.in.WPacketPlayInFlying;
-import dev.brighten.ac.utils.*;
+import dev.brighten.ac.utils.BlockUtils;
+import dev.brighten.ac.utils.KLocation;
+import dev.brighten.ac.utils.MathUtils;
+import dev.brighten.ac.utils.Tuple;
import dev.brighten.ac.utils.annotation.Async;
import dev.brighten.ac.utils.math.cond.MaxDouble;
import dev.brighten.ac.utils.world.BlockData;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/world/BlockB.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/world/BlockB.java
index 7aeab3a..f13caeb 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/world/BlockB.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/world/BlockB.java
@@ -1,9 +1,9 @@
package dev.brighten.ac.check.impl.world;
-import dev.brighten.ac.check.WAction;
+import dev.brighten.ac.api.check.CheckType;
import dev.brighten.ac.check.Check;
import dev.brighten.ac.check.CheckData;
-import dev.brighten.ac.api.check.CheckType;
+import dev.brighten.ac.check.WAction;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.utils.annotation.Async;
import org.bukkit.block.Block;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/command/LogsCommand.java b/Anticheat/src/main/java/dev/brighten/ac/command/LogsCommand.java
index 6663bd7..0baaa35 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/command/LogsCommand.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/command/LogsCommand.java
@@ -1,8 +1,8 @@
package dev.brighten.ac.command;
import co.aikar.commands.BaseCommand;
-import co.aikar.commands.annotation.*;
import co.aikar.commands.annotation.Optional;
+import co.aikar.commands.annotation.*;
import dev.brighten.ac.Anticheat;
import dev.brighten.ac.check.CheckSettings;
import dev.brighten.ac.gui.Logs;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/data/APlayer.java b/Anticheat/src/main/java/dev/brighten/ac/data/APlayer.java
index 62e4e2a..d35e942 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/data/APlayer.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/data/APlayer.java
@@ -50,7 +50,6 @@ import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;
import java.util.function.Consumer;
-import java.util.stream.Collectors;
public class APlayer {
diff --git a/Anticheat/src/main/java/dev/brighten/ac/data/info/BlockInformation.java b/Anticheat/src/main/java/dev/brighten/ac/data/info/BlockInformation.java
index 689c7a0..22d4e3f 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/data/info/BlockInformation.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/data/info/BlockInformation.java
@@ -3,12 +3,16 @@ package dev.brighten.ac.data.info;
import dev.brighten.ac.Anticheat;
import dev.brighten.ac.data.APlayer;
import dev.brighten.ac.packet.ProtocolVersion;
-import dev.brighten.ac.utils.*;
+import dev.brighten.ac.utils.BlockUtils;
+import dev.brighten.ac.utils.Materials;
+import dev.brighten.ac.utils.MiscUtils;
+import dev.brighten.ac.utils.XMaterial;
import dev.brighten.ac.utils.math.IntVector;
import dev.brighten.ac.utils.world.BlockData;
import dev.brighten.ac.utils.world.CollisionBox;
import dev.brighten.ac.utils.world.EntityData;
import dev.brighten.ac.utils.world.types.SimpleCollisionBox;
+import me.hydro.emulator.util.mcp.MathHelper;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/data/info/GeneralInformation.java b/Anticheat/src/main/java/dev/brighten/ac/data/info/GeneralInformation.java
index 146d2b9..d71145b 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/data/info/GeneralInformation.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/data/info/GeneralInformation.java
@@ -32,7 +32,7 @@ public class GeneralInformation {
lastLiquid = new TickTimer(), lastBlockDig = new TickTimer(), lastBlockPlace = new TickTimer(),
lastBlockUpdate = new TickTimer(), lastMiscNear = new TickTimer(), lastHalfBlock = new TickTimer(),
lastFence = new TickTimer(), lastFakeBotHit = new TickTimer(), lastInventoryOpen = new TickTimer(),
- botAttack = new TickTimer(), lastAttack = new TickTimer();
+ botAttack = new TickTimer(), lastAttack = new TickTimer(), lastCanceledFlying = new TickTimer();
public LivingEntity target;
public Optional groundJumpBoost;
public boolean serverGround, lastServerGround, canFly, nearGround, worldLoaded, generalCancel, inVehicle, creative,
diff --git a/Anticheat/src/main/java/dev/brighten/ac/handler/EntityLocationHandler.java b/Anticheat/src/main/java/dev/brighten/ac/handler/EntityLocationHandler.java
index 4787f65..6babdcf 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/handler/EntityLocationHandler.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/handler/EntityLocationHandler.java
@@ -9,7 +9,6 @@ import dev.brighten.ac.packet.wrapper.out.*;
import dev.brighten.ac.utils.EntityLocation;
import dev.brighten.ac.utils.KLocation;
import dev.brighten.ac.utils.Tuple;
-import dev.brighten.ac.utils.math.RayTrace;
import dev.brighten.ac.utils.timer.Timer;
import dev.brighten.ac.utils.timer.impl.MillisTimer;
import dev.brighten.ac.utils.world.types.RayCollision;
@@ -282,15 +281,16 @@ public class EntityLocationHandler {
}
KLocation eyeLoc = data.getMovement().getTo().getLoc().clone()
- .add(0, data.getInfo().isSneaking() ? 1.54f : 1.62f, 0);
+ .add(0, 0.6, 0);
RayCollision collision = new RayCollision(eyeLoc.toVector(), eyeLoc.getDirection());
- Vector point = collision.collisionPoint(1);
+ Vector point = collision.collisionPoint(0.4);
- FakeMob mob = new FakeMob(EntityType.ZOMBIE);
+ FakeMob mob = new FakeMob(EntityType.SLIME);
- mob.spawn(true, point.toLocation(location.getWorld()), data);
+ mob.spawn(true, point.toLocation(location.getWorld()), new ArrayList<>(Collections.singletonList(
+ new WrappedWatchableObject(0, 16, (byte) 5))), data);
fakeMobToEntityId.put(mob.getEntityId(), data.getBukkitPlayer().getEntityId());
@@ -312,13 +312,12 @@ public class EntityLocationHandler {
}
for (FakeMob fakeMob : fakeMobs) {
- if(fakeMob.getType() == EntityType.ZOMBIE) {
- KLocation eyeLoc = data.getMovement().getTo().getLoc().clone()
- .add(0, data.getInfo().isSneaking() ? 1.54f : 1.62f, 0);
+ if(fakeMob.getType() == EntityType.SLIME) {
+ KLocation eyeLoc = data.getMovement().getTo().getLoc().clone().add(0, 0.6, 0);
RayCollision collision = new RayCollision(eyeLoc.toVector(), eyeLoc.getDirection());
- Vector point = collision.collisionPoint(1);
+ Vector point = collision.collisionPoint(0.4);
fakeMob.teleport(point.getX(), point.getY(), point.getZ(), 0 ,0);
break;
@@ -342,8 +341,6 @@ public class EntityLocationHandler {
int current = 0;
for (FakeMob fakeMob : fakeMobs) {
- if(fakeMob.getType() == EntityType.ZOMBIE)
- continue;
double offset = offsets[current++];
if(rel) {
diff --git a/Anticheat/src/main/java/dev/brighten/ac/handler/MovementHandler.java b/Anticheat/src/main/java/dev/brighten/ac/handler/MovementHandler.java
index 9a0f812..af02d31 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/handler/MovementHandler.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/handler/MovementHandler.java
@@ -22,6 +22,7 @@ import me.hydro.emulator.object.iteration.Motion;
import me.hydro.emulator.object.result.IterationResult;
import me.hydro.emulator.util.PotionEffect;
import me.hydro.emulator.util.Vector;
+import me.hydro.emulator.util.mcp.MathHelper;
import me.hydro.emulator.util.mcp.MathHelper.FastMathType;
import org.bukkit.GameMode;
import org.bukkit.Location;
@@ -105,7 +106,7 @@ public class MovementHandler {
private static final boolean[] ALWAYS_FALSE = new boolean[1];
private static final int[] FULL_RANGE = new int[]{-1, 0, 1};
- public void runEmulation(KLocation to) {
+ public void runEmulation(KLocation to, boolean isZeroThree) {
/*
* (org.bukkit.potion.PotionEffectType
* Element 0: SPEED
@@ -133,6 +134,10 @@ public class MovementHandler {
}
}
+ if(player.EMULATOR.getTags().contains("003") && !isZeroThree) {
+ runEmulation(to, true);
+ }
+
IterationResult minimum = null;
iteration: {
for (KLocation posLoc : posLocs) {
@@ -157,8 +162,8 @@ public class MovementHandler {
Motion previousMotion = player.EMULATOR.getMotion().clone();
- for (int forward : FULL_RANGE) {
- for (int strafe : FULL_RANGE) {
+ for (int forward : isZeroThree ? new int[] {0} : FULL_RANGE) {
+ for (int strafe : isZeroThree ? new int[] {0} : FULL_RANGE) {
for (boolean jumping : getJumpingIterations()) {
for (boolean sprinting : getSprintingIterations(forward)) {
for (boolean usingItem : getUsingItemIterations(forward, strafe)) {
@@ -224,7 +229,20 @@ public class MovementHandler {
if(minimum != null) {
predicted = minimum.getPredicted();
- if (minimum.getOffset() > 1E-7) {
+
+ double mx = player.EMULATOR.getMotion().getMotionX();
+ double my = player.EMULATOR.getMotion().getMotionY();
+ double mz = player.EMULATOR.getMotion().getMotionZ();
+
+ double total = mx * mx + my * my + mz * mz;
+
+ if(total < 9E-4) {
+ player.getInfo().lastCanceledFlying.reset();
+ player.getBukkitPlayer().sendMessage("003");
+ minimum.getTags().add("003");
+ }
+
+ if (minimum.getOffset() > 1E-7 && !isZeroThree) {
minimum.getTags().add("bad_offset");
minimum.getMotion().setMotionX(deltaX);
minimum.getMotion().setMotionY(deltaY);
@@ -232,13 +250,13 @@ public class MovementHandler {
}
player.EMULATOR.confirm(minimum.getIteration());
+ if(minimum.getTags().contains("003")) {
+ player.EMULATOR.getTags().add("003");
+ }
+
if(minimum.getTags().contains("bad_offset")) {
player.EMULATOR.setLastReportedBoundingBox(getTo().getBox().toNeo());
}
-
- double mx = player.EMULATOR.getMotion().getMotionX();
- double my = player.EMULATOR.getMotion().getMotionY();
- double mz = player.EMULATOR.getMotion().getMotionZ();
}
}
@@ -301,7 +319,7 @@ public class MovementHandler {
player.getBlockInfo().runCollisionCheck();
}
- runEmulation(to.getLoc());
+ runEmulation(to.getLoc(), false);
if (moveTicks > 0) {
diff --git a/Anticheat/src/main/java/dev/brighten/ac/handler/block/BlockUpdateHandler.java b/Anticheat/src/main/java/dev/brighten/ac/handler/block/BlockUpdateHandler.java
index e011d84..fd337e8 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/handler/block/BlockUpdateHandler.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/handler/block/BlockUpdateHandler.java
@@ -12,12 +12,12 @@ import dev.brighten.ac.utils.Materials;
import dev.brighten.ac.utils.XMaterial;
import dev.brighten.ac.utils.math.IntVector;
import dev.brighten.ac.utils.world.types.RayCollision;
+import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
import lombok.RequiredArgsConstructor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
-import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
import java.util.Optional;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/logging/Log.java b/Anticheat/src/main/java/dev/brighten/ac/logging/Log.java
index 2f5d82b..37e3914 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/logging/Log.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/logging/Log.java
@@ -1,9 +1,9 @@
package dev.brighten.ac.logging;
-import lombok.Builder;
-import lombok.Getter;
import dev.brighten.ac.utils.json.JSONException;
import dev.brighten.ac.utils.json.JSONObject;
+import lombok.Builder;
+import lombok.Getter;
import java.util.UUID;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/impl/Processor_18.java b/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/impl/Processor_18.java
index 378d4ea..3fdd8fb 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/impl/Processor_18.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/impl/Processor_18.java
@@ -8,7 +8,6 @@ import dev.brighten.ac.packet.wrapper.objects.PlayerCapabilities;
import dev.brighten.ac.packet.wrapper.objects.WrappedEnumDirection;
import dev.brighten.ac.packet.wrapper.objects.WrappedWatchableObject;
import dev.brighten.ac.packet.wrapper.out.*;
-import dev.brighten.ac.utils.MathHelper;
import dev.brighten.ac.utils.MiscUtils;
import dev.brighten.ac.utils.math.FloatVector;
import dev.brighten.ac.utils.math.IntVector;
@@ -18,6 +17,7 @@ import io.netty.buffer.Unpooled;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import lombok.SneakyThrows;
import lombok.val;
+import me.hydro.emulator.util.mcp.MathHelper;
import net.minecraft.server.v1_8_R3.*;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack;
@@ -32,6 +32,7 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
+@SuppressWarnings("deprecation")
public class Processor_18 implements PacketConverter {
@Override
public WPacketPlayInFlying processFlying(Object object) {
@@ -266,7 +267,7 @@ public class Processor_18 implements PacketConverter {
serial.b(packet.getId()); //No matter what this will always be written
- Object packetToReturn = null;
+ Object packetToReturn;
if(packet.isLooked() && packet.isMoved()) { // Moved and looked
serial.writeByte(MathHelper.floor_double(packet.getX() * 32.));
@@ -574,8 +575,7 @@ public class Processor_18 implements PacketConverter {
}
private static final WrappedClass classSpawnEntityLiving = new WrappedClass(PacketPlayOutSpawnEntityLiving.class);
- private static final WrappedField splDataWatcher = classSpawnEntityLiving.getFieldByType(DataWatcher.class, 0),
- splWatchList = classSpawnEntityLiving.getFieldByType(List.class, 0);
+ private static final WrappedField splDataWatcher = classSpawnEntityLiving.getFieldByType(DataWatcher.class, 0);
@SneakyThrows
@Override
@@ -598,8 +598,6 @@ public class Processor_18 implements PacketConverter {
return builder.build();
}
- private static final WrappedClass dataWatcherClass = new WrappedClass(DataWatcher.class);
- private static final WrappedField watchableMap = dataWatcherClass.getFieldByName("d");
@Override
public Object processSpawnLiving(WPacketPlayOutSpawnEntityLiving packet) {
PacketPlayOutSpawnEntityLiving vanilla = new PacketPlayOutSpawnEntityLiving();
@@ -621,7 +619,7 @@ public class Processor_18 implements PacketConverter {
DataWatcher watcher = new DataWatcher(null);
for (WrappedWatchableObject w : packet.getWatchedObjects()) {
- watcher.a(w.getDataValueId(), w.getWatchedObject());;
+ watcher.a(w.getDataValueId(), w.getWatchedObject());
}
watcher.a(serializer);
@@ -788,7 +786,7 @@ public class Processor_18 implements PacketConverter {
int chunkZ = serialized.readInt();
PacketPlayOutMapChunk.ChunkMap chunkMap = new PacketPlayOutMapChunk.ChunkMap();
chunkMap.b = serialized.readShort() & '\uffff';
- chunkMap.a = new byte[a(Integer.bitCount(chunkMap.b), groundUp, true)];
+ chunkMap.a = new byte[a(Integer.bitCount(chunkMap.b), groundUp)];
Map blocks = new Object2ObjectOpenHashMap<>(chunkMap.a.length);
@@ -957,19 +955,14 @@ public class Processor_18 implements PacketConverter {
}
}
- private static int a(int i, boolean flag, boolean flag1) {
+ private static int a(int i, boolean flag) {
int j = i * 2 * 16 * 16 * 16;
int k = i * 16 * 16 * 16 / 2;
int l = flag ? i * 16 * 16 * 16 / 2 : 0;
- int i1 = flag1 ? 256 : 0;
+ int i1 = 256;
return j + k + l + i1;
}
- private static int a(byte[] abyte, byte[] abyte1, int i) {
- System.arraycopy(abyte, 0, abyte1, i, abyte.length);
- return i + abyte.length;
- }
-
private PacketDataSerializer serialize(Packet> packet) {
PacketDataSerializer serial = new PacketDataSerializer(Unpooled.buffer());
try {
@@ -985,44 +978,26 @@ public class Processor_18 implements PacketConverter {
int i = (object.getObjectType() << 5 | object.getDataValueId() & 31) & 255;
serializer.writeByte(i);
switch (object.getObjectType()) {
- case 0: {
- serializer.writeByte((Byte)object.getWatchedObject());
- break;
- }
- case 1: {
- serializer.writeShort((Short)object.getWatchedObject());
- break;
- }
- case 2: {
- serializer.writeInt((Integer)object.getWatchedObject());
- break;
- }
- case 3: {
- serializer.writeFloat((Float)object.getWatchedObject());
- break;
- }
- case 4: {
- serializer.a((String)object.getWatchedObject());
- break;
- }
- case 5: {
- ItemStack itemStack = (ItemStack)object.getWatchedObject();
+ case 0 -> serializer.writeByte((Byte) object.getWatchedObject());
+ case 1 -> serializer.writeShort((Short) object.getWatchedObject());
+ case 2 -> serializer.writeInt((Integer) object.getWatchedObject());
+ case 3 -> serializer.writeFloat((Float) object.getWatchedObject());
+ case 4 -> serializer.a((String) object.getWatchedObject());
+ case 5 -> {
+ ItemStack itemStack = (ItemStack) object.getWatchedObject();
serializer.a(itemStack);
- break;
}
- case 6: {
- BlockPosition blockPosition = (BlockPosition)object.getWatchedObject();
+ case 6 -> {
+ BlockPosition blockPosition = (BlockPosition) object.getWatchedObject();
serializer.writeInt(blockPosition.getX());
serializer.writeInt(blockPosition.getY());
serializer.writeInt(blockPosition.getZ());
- break;
}
- case 7: {
- Vector3f vector3f = (Vector3f)object.getWatchedObject();
+ case 7 -> {
+ Vector3f vector3f = (Vector3f) object.getWatchedObject();
serializer.writeFloat(vector3f.getX());
serializer.writeFloat(vector3f.getY());
serializer.writeFloat(vector3f.getZ());
- break;
}
}
}
diff --git a/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/objects/EnumParticle.java b/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/objects/EnumParticle.java
index c1ce170..e8f6c3a 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/objects/EnumParticle.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/objects/EnumParticle.java
@@ -2,6 +2,7 @@ package dev.brighten.ac.packet.wrapper.objects;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+
import java.util.ArrayList;
import java.util.Map;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/objects/WrappedEnumDirection.java b/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/objects/WrappedEnumDirection.java
index bb8a6f9..26a93b3 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/objects/WrappedEnumDirection.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/objects/WrappedEnumDirection.java
@@ -2,10 +2,10 @@ package dev.brighten.ac.packet.wrapper.objects;
import dev.brighten.ac.packet.ProtocolVersion;
-import dev.brighten.ac.utils.MathHelper;
import dev.brighten.ac.utils.math.IntVector;
import dev.brighten.ac.utils.reflections.Reflections;
import dev.brighten.ac.utils.reflections.types.WrappedClass;
+import me.hydro.emulator.util.mcp.MathHelper;
import java.util.Arrays;
import java.util.HashMap;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutNamedEntitySpawn.java b/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutNamedEntitySpawn.java
index e71f352..41df168 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutNamedEntitySpawn.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/packet/wrapper/out/WPacketPlayOutNamedEntitySpawn.java
@@ -7,7 +7,6 @@ import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import org.bukkit.Material;
-import org.bukkit.inventory.ItemStack;
import java.util.UUID;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/Color.java b/Anticheat/src/main/java/dev/brighten/ac/utils/Color.java
index 5878cbd..02373d4 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/Color.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/Color.java
@@ -1,10 +1,8 @@
package dev.brighten.ac.utils;
import dev.brighten.ac.packet.ProtocolVersion;
-import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
-import java.util.logging.Level;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/EntityLocation.java b/Anticheat/src/main/java/dev/brighten/ac/utils/EntityLocation.java
index 20bf8de..c4737a5 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/EntityLocation.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/EntityLocation.java
@@ -3,6 +3,7 @@ package dev.brighten.ac.utils;
import dev.brighten.ac.Anticheat;
import dev.brighten.ac.utils.objects.evicting.EvictingList;
import lombok.RequiredArgsConstructor;
+import me.hydro.emulator.util.mcp.MathHelper;
import org.bukkit.entity.Entity;
import org.bukkit.util.Vector;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/MathHelper.java b/Anticheat/src/main/java/dev/brighten/ac/utils/MathHelper.java
deleted file mode 100644
index e8b7856..0000000
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/MathHelper.java
+++ /dev/null
@@ -1,501 +0,0 @@
-package dev.brighten.ac.utils;
-
-
-import java.util.Random;
-import java.util.UUID;
-
-public class MathHelper {
- public static final float SQRT_2 = sqrt_float(2.0F);
- public static final float PI = (float) Math.PI;
- public static final float PI2 = ((float) Math.PI * 2F);
- public static final float PId2 = ((float) Math.PI / 2F);
- public static final float deg2Rad = 0.017453292F;
- private static final int SIN_BITS = 12;
- private static final int SIN_MASK = 4095;
- private static final int SIN_COUNT = 4096;
- private static final float radFull = ((float) Math.PI * 2F);
- private static final float degFull = 360.0F;
- private static final float radToIndex = 651.8986F;
- private static final float degToIndex = 11.377778F;
- private static final float[] SIN_TABLE_FAST = new float[4096];
- /**
- * A table of sin values computed from 0 (inclusive) to 2*pi (exclusive), with steps of 2*PI / 65536.
- */
- private static final float[] SIN_TABLE = new float[65536];
- /**
- * Though it looks like an array, this is really more like a mapping. Key (index of this array) is the upper 5 bits
- * of the result of multiplying a 32-bit unsigned integer by the B(2, 5) De Bruijn sequence 0x077CB531. Value
- * (value stored in the array) is the unique index (from the right) of the leftmost one-bit in a 32-bit unsigned
- * integer that can cause the upper 5 bits to get that value. Used for highly optimized "find the log-base-2 of
- * this number" calculations.
- */
- private static final int[] multiplyDeBruijnBitPosition;
- private static final double field_181163_d;
- private static final double[] field_181164_e;
- private static final double[] field_181165_f;
- private static final String __OBFID = "CL_00001496";
- public static boolean fastMath = false;
-
- static {
- for (int i = 0; i < 65536; ++i) {
- SIN_TABLE[i] = (float) Math.sin((double) i * Math.PI * 2.0D / 65536.0D);
- }
-
- for (int j = 0; j < 4096; ++j) {
- SIN_TABLE_FAST[j] = (float) Math.sin(((float) j + 0.5F) / 4096.0F * ((float) Math.PI * 2F));
- }
-
- for (int l = 0; l < 360; l += 90) {
- SIN_TABLE_FAST[(int) ((float) l * 11.377778F) & 4095] = (float) Math.sin((float) l * 0.017453292F);
- }
-
- multiplyDeBruijnBitPosition = new int[]{0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9};
- field_181163_d = Double.longBitsToDouble(4805340802404319232L);
- field_181164_e = new double[257];
- field_181165_f = new double[257];
-
- for (int k = 0; k < 257; ++k) {
- double d1 = (double) k / 256.0D;
- double d0 = Math.asin(d1);
- field_181165_f[k] = Math.cos(d0);
- field_181164_e[k] = d0;
- }
- }
-
- /**
- * sin looked up in a table
- */
- public static float sin(float p_76126_0_) {
- return fastMath ? SIN_TABLE_FAST[(int) (p_76126_0_ * 651.8986F) & 4095] : SIN_TABLE[(int) (p_76126_0_ * 10430.378F) & 65535];
- }
-
- /**
- * cos looked up in the sin table with the appropriate offset
- */
- public static float cos(float value) {
- return fastMath ? SIN_TABLE_FAST[(int) ((value + ((float) Math.PI / 2F)) * 651.8986F) & 4095] : SIN_TABLE[(int) (value * 10430.378F + 16384.0F) & 65535];
- }
-
- public static float sqrt_float(float value) {
- return (float) Math.sqrt(value);
- }
-
- public static float sqrt_double(double value) {
- return (float) Math.sqrt(value);
- }
-
- /**
- * Returns the greatest integer less than or equal to the float argument
- */
- public static int floor_float(float value) {
- int i = (int) value;
- return value < (float) i ? i - 1 : i;
- }
-
- /**
- * returns par0 cast as an int, and no greater than Integer.MAX_VALUE-1024
- */
- public static int truncateDoubleToInt(double value) {
- return (int) (value + 1024.0D) - 1024;
- }
-
- /**
- * Returns the greatest integer less than or equal to the double argument
- */
- public static int floor_double(double value) {
- int i = (int) value;
- return value < (double) i ? i - 1 : i;
- }
-
- /**
- * Long version of floor_double
- */
- public static long floor_double_long(double value) {
- long i = (long) value;
- return value < (double) i ? i - 1L : i;
- }
-
- public static int func_154353_e(double value) {
- return (int) (value >= 0.0D ? value : -value + 1.0D);
- }
-
- public static float abs(float value) {
- return value >= 0.0F ? value : -value;
- }
-
- /**
- * Returns the unsigned value of an int.
- */
- public static int abs_int(int value) {
- return value >= 0 ? value : -value;
- }
-
- public static int ceiling_float_int(float value) {
- int i = (int) value;
- return value > (float) i ? i + 1 : i;
- }
-
- public static int ceiling_double_int(double value) {
- int i = (int) value;
- return value > (double) i ? i + 1 : i;
- }
-
- /**
- * Returns the value of the first parameter, clamped to be within the lower and upper limits given by the second and
- * third parameters.
- */
- public static int clamp_int(int num, int min, int max) {
- return num < min ? min : (num > max ? max : num);
- }
-
- /**
- * Returns the value of the first parameter, clamped to be within the lower and upper limits given by the second and
- * third parameters
- */
- public static float clamp_float(float num, float min, float max) {
- return num < min ? min : (num > max ? max : num);
- }
-
- public static double clamp_double(double num, double min, double max) {
- return num < min ? min : (num > max ? max : num);
- }
-
- public static double denormalizeClamp(double p_151238_0_, double p_151238_2_, double p_151238_4_) {
- return p_151238_4_ < 0.0D ? p_151238_0_ : (p_151238_4_ > 1.0D ? p_151238_2_ : p_151238_0_ + (p_151238_2_ - p_151238_0_) * p_151238_4_);
- }
-
- /**
- * Maximum of the absolute value of two numbers.
- */
- public static double abs_max(double p_76132_0_, double p_76132_2_) {
- if (p_76132_0_ < 0.0D) {
- p_76132_0_ = -p_76132_0_;
- }
-
- if (p_76132_2_ < 0.0D) {
- p_76132_2_ = -p_76132_2_;
- }
-
- return p_76132_0_ > p_76132_2_ ? p_76132_0_ : p_76132_2_;
- }
-
- /**
- * Buckets an integer with specifed bucket sizes. Args: i, bucketSize
- */
- public static int bucketInt(int p_76137_0_, int p_76137_1_) {
- return p_76137_0_ < 0 ? -((-p_76137_0_ - 1) / p_76137_1_) - 1 : p_76137_0_ / p_76137_1_;
- }
-
- public static int getRandomIntegerInRange(Random p_76136_0_, int p_76136_1_, int p_76136_2_) {
- return p_76136_1_ >= p_76136_2_ ? p_76136_1_ : p_76136_0_.nextInt(p_76136_2_ - p_76136_1_ + 1) + p_76136_1_;
- }
-
- public static float randomFloatClamp(Random p_151240_0_, float p_151240_1_, float p_151240_2_) {
- return p_151240_1_ >= p_151240_2_ ? p_151240_1_ : p_151240_0_.nextFloat() * (p_151240_2_ - p_151240_1_) + p_151240_1_;
- }
-
- public static double getRandomDoubleInRange(Random p_82716_0_, double p_82716_1_, double p_82716_3_) {
- return p_82716_1_ >= p_82716_3_ ? p_82716_1_ : p_82716_0_.nextDouble() * (p_82716_3_ - p_82716_1_) + p_82716_1_;
- }
-
- public static double average(long[] values) {
- long i = 0L;
-
- for (long j : values) {
- i += j;
- }
-
- return (double) i / (double) values.length;
- }
-
- public static boolean epsilonEquals(float p_180185_0_, float p_180185_1_) {
- return abs(p_180185_1_ - p_180185_0_) < 1.0E-5F;
- }
-
- public static int normalizeAngle(int p_180184_0_, int p_180184_1_) {
- return (p_180184_0_ % p_180184_1_ + p_180184_1_) % p_180184_1_;
- }
-
- /**
- * the angle is reduced to an angle between -180 and +180 by mod, and a 360 check
- */
- public static float wrapAngleTo180_float(float value) {
- value = value % 360.0F;
-
- if (value >= 180.0F) {
- value -= 360.0F;
- }
-
- if (value < -180.0F) {
- value += 360.0F;
- }
-
- return value;
- }
-
- /**
- * the angle is reduced to an angle between -180 and +180 by mod, and a 360 check
- */
- public static double wrapAngleTo180_double(double value) {
- value = value % 360.0D;
-
- if (value >= 180.0D) {
- value -= 360.0D;
- }
-
- if (value < -180.0D) {
- value += 360.0D;
- }
-
- return value;
- }
-
- /**
- * parses the string as integer or returns the second parameter if it fails
- */
- public static int parseIntWithDefault(String p_82715_0_, int p_82715_1_) {
- try {
- return Integer.parseInt(p_82715_0_);
- } catch (Throwable var3) {
- return p_82715_1_;
- }
- }
-
- /**
- * parses the string as integer or returns the second parameter if it fails. this value is capped to par2
- */
- public static int parseIntWithDefaultAndMax(String p_82714_0_, int p_82714_1_, int p_82714_2_) {
- return Math.max(p_82714_2_, parseIntWithDefault(p_82714_0_, p_82714_1_));
- }
-
- /**
- * parses the string as double or returns the second parameter if it fails.
- */
- public static double parseDoubleWithDefault(String p_82712_0_, double p_82712_1_) {
- try {
- return Double.parseDouble(p_82712_0_);
- } catch (Throwable var4) {
- return p_82712_1_;
- }
- }
-
- public static double parseDoubleWithDefaultAndMax(String p_82713_0_, double p_82713_1_, double p_82713_3_) {
- return Math.max(p_82713_3_, parseDoubleWithDefault(p_82713_0_, p_82713_1_));
- }
-
- /**
- * Returns the input value rounded up to the next highest power of two.
- */
- public static int roundUpToPowerOfTwo(int value) {
- int i = value - 1;
- i = i | i >> 1;
- i = i | i >> 2;
- i = i | i >> 4;
- i = i | i >> 8;
- i = i | i >> 16;
- return i + 1;
- }
-
- /**
- * Is the given value a power of two? (1, 2, 4, 8, 16, ...)
- */
- private static boolean isPowerOfTwo(int value) {
- return value != 0 && (value & value - 1) == 0;
- }
-
- /**
- * Uses a B(2, 5) De Bruijn sequence and a lookup table to efficiently calculate the log-base-two of the given
- * value. Optimized for cases where the input value is a power-of-two. If the input value is not a power-of-two,
- * then subtract 1 from the return value.
- */
- private static int calculateLogBaseTwoDeBruijn(int value) {
- value = isPowerOfTwo(value) ? value : roundUpToPowerOfTwo(value);
- return multiplyDeBruijnBitPosition[(int) ((long) value * 125613361L >> 27) & 31];
- }
-
- /**
- * Efficiently calculates the floor of the base-2 log of an integer value. This is effectively the index of the
- * highest bit that is set. For example, if the number in binary is 0...100101, this will return 5.
- */
- public static int calculateLogBaseTwo(int value) {
- return calculateLogBaseTwoDeBruijn(value) - (isPowerOfTwo(value) ? 0 : 1);
- }
-
- public static int func_154354_b(int p_154354_0_, int p_154354_1_) {
- if (p_154354_1_ == 0) {
- return 0;
- } else if (p_154354_0_ == 0) {
- return p_154354_1_;
- } else {
- if (p_154354_0_ < 0) {
- p_154354_1_ *= -1;
- }
-
- int i = p_154354_0_ % p_154354_1_;
- return i == 0 ? p_154354_0_ : p_154354_0_ + p_154354_1_ - i;
- }
- }
-
- public static int func_180183_b(float p_180183_0_, float p_180183_1_, float p_180183_2_) {
- return func_180181_b(floor_float(p_180183_0_ * 255.0F), floor_float(p_180183_1_ * 255.0F), floor_float(p_180183_2_ * 255.0F));
- }
-
- public static int func_180181_b(int p_180181_0_, int p_180181_1_, int p_180181_2_) {
- int i = (p_180181_0_ << 8) + p_180181_1_;
- i = (i << 8) + p_180181_2_;
- return i;
- }
-
- public static int func_180188_d(int p_180188_0_, int p_180188_1_) {
- int i = (p_180188_0_ & 16711680) >> 16;
- int j = (p_180188_1_ & 16711680) >> 16;
- int k = (p_180188_0_ & 65280) >> 8;
- int l = (p_180188_1_ & 65280) >> 8;
- int i1 = (p_180188_0_ & 255) >> 0;
- int j1 = (p_180188_1_ & 255) >> 0;
- int k1 = (int) ((float) i * (float) j / 255.0F);
- int l1 = (int) ((float) k * (float) l / 255.0F);
- int i2 = (int) ((float) i1 * (float) j1 / 255.0F);
- return p_180188_0_ & -16777216 | k1 << 16 | l1 << 8 | i2;
- }
-
- public static double func_181162_h(double p_181162_0_) {
- return p_181162_0_ - Math.floor(p_181162_0_);
- }
-
- public static long getCoordinateRandom(int x, int y, int z) {
- long i = (long) (x * 3129871L) ^ (long) z * 116129781L ^ (long) y;
- i = i * i * 42317861L + i * 11L;
- return i;
- }
-
- public static UUID getRandomUuid(Random rand) {
- long i = rand.nextLong() & -61441L | 16384L;
- long j = rand.nextLong() & 4611686018427387903L | Long.MIN_VALUE;
- return new UUID(i, j);
- }
-
- public static double func_181160_c(double p_181160_0_, double p_181160_2_, double p_181160_4_) {
- return (p_181160_0_ - p_181160_2_) / (p_181160_4_ - p_181160_2_);
- }
-
- public static double func_181159_b(double p_181159_0_, double p_181159_2_) {
- double d0 = p_181159_2_ * p_181159_2_ + p_181159_0_ * p_181159_0_;
-
- if (Double.isNaN(d0)) {
- return Double.NaN;
- } else {
- boolean flag = p_181159_0_ < 0.0D;
-
- if (flag) {
- p_181159_0_ = -p_181159_0_;
- }
-
- boolean flag1 = p_181159_2_ < 0.0D;
-
- if (flag1) {
- p_181159_2_ = -p_181159_2_;
- }
-
- boolean flag2 = p_181159_0_ > p_181159_2_;
-
- if (flag2) {
- double d1 = p_181159_2_;
- p_181159_2_ = p_181159_0_;
- p_181159_0_ = d1;
- }
-
- double d9 = func_181161_i(d0);
- p_181159_2_ = p_181159_2_ * d9;
- p_181159_0_ = p_181159_0_ * d9;
- double d2 = field_181163_d + p_181159_0_;
- int i = (int) Double.doubleToRawLongBits(d2);
- double d3 = field_181164_e[i];
- double d4 = field_181165_f[i];
- double d5 = d2 - field_181163_d;
- double d6 = p_181159_0_ * d4 - p_181159_2_ * d5;
- double d7 = (6.0D + d6 * d6) * d6 * 0.16666666666666666D;
- double d8 = d3 + d7;
-
- if (flag2) {
- d8 = (Math.PI / 2D) - d8;
- }
-
- if (flag1) {
- d8 = Math.PI - d8;
- }
-
- if (flag) {
- d8 = -d8;
- }
-
- return d8;
- }
- }
-
- public static double func_181161_i(double p_181161_0_) {
- double d0 = 0.5D * p_181161_0_;
- long i = Double.doubleToRawLongBits(p_181161_0_);
- i = 6910469410427058090L - (i >> 1);
- p_181161_0_ = Double.longBitsToDouble(i);
- p_181161_0_ = p_181161_0_ * (1.5D - d0 * p_181161_0_ * p_181161_0_);
- return p_181161_0_;
- }
-
- public static int func_181758_c(float p_181758_0_, float p_181758_1_, float p_181758_2_) {
- int i = (int) (p_181758_0_ * 6.0F) % 6;
- float f = p_181758_0_ * 6.0F - (float) i;
- float f1 = p_181758_2_ * (1.0F - p_181758_1_);
- float f2 = p_181758_2_ * (1.0F - f * p_181758_1_);
- float f3 = p_181758_2_ * (1.0F - (1.0F - f) * p_181758_1_);
- float f4;
- float f5;
- float f6;
-
- switch (i) {
- case 0:
- f4 = p_181758_2_;
- f5 = f3;
- f6 = f1;
- break;
-
- case 1:
- f4 = f2;
- f5 = p_181758_2_;
- f6 = f1;
- break;
-
- case 2:
- f4 = f1;
- f5 = p_181758_2_;
- f6 = f3;
- break;
-
- case 3:
- f4 = f1;
- f5 = f2;
- f6 = p_181758_2_;
- break;
-
- case 4:
- f4 = f3;
- f5 = f1;
- f6 = p_181758_2_;
- break;
-
- case 5:
- f4 = p_181758_2_;
- f5 = f1;
- f6 = f2;
- break;
-
- default:
- throw new RuntimeException("Something went wrong when converting from HSV to RGB. Input was " + p_181758_0_ + ", " + p_181758_1_ + ", " + p_181758_2_);
- }
-
- int j = clamp_int((int) (f4 * 255.0F), 0, 255);
- int k = clamp_int((int) (f5 * 255.0F), 0, 255);
- int l = clamp_int((int) (f6 * 255.0F), 0, 255);
- return j << 16 | k << 8 | l;
- }
-}
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/MiscUtils.java b/Anticheat/src/main/java/dev/brighten/ac/utils/MiscUtils.java
index 39eece7..f0dba2d 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/MiscUtils.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/MiscUtils.java
@@ -7,6 +7,7 @@ import dev.brighten.ac.utils.reflections.types.WrappedClass;
import dev.brighten.ac.utils.reflections.types.WrappedField;
import dev.brighten.ac.utils.world.types.SimpleCollisionBox;
import dev.brighten.ac.utils.wrapper.Wrapper;
+import me.hydro.emulator.util.mcp.MathHelper;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.Bukkit;
@@ -358,6 +359,18 @@ public class MiscUtils {
return true;
}
+ public static int getDistanceToGround(Player p) {
+ Location loc = p.getLocation().clone();
+ double y = loc.getBlockY();
+ int distance = 0;
+ for (double i = y; i >= 0.0; i -= 1.0) {
+ loc.setY(i);
+ if (BlockUtils.getBlock(loc).getType().isSolid() || BlockUtils.getBlock(loc).isLiquid()) break;
+ ++distance;
+ }
+ return distance;
+ }
+
public static T getArgOrNull(T[] array, int index) {
if(array.length > index) {
return array[index];
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/MovementUtils.java b/Anticheat/src/main/java/dev/brighten/ac/utils/MovementUtils.java
index a5aa351..ece9f71 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/MovementUtils.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/MovementUtils.java
@@ -8,6 +8,7 @@ import dev.brighten.ac.utils.world.BlockData;
import dev.brighten.ac.utils.world.CollisionBox;
import dev.brighten.ac.utils.world.types.SimpleCollisionBox;
import lombok.val;
+import me.hydro.emulator.util.mcp.MathHelper;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/ReflectionsUtil.java b/Anticheat/src/main/java/dev/brighten/ac/utils/ReflectionsUtil.java
index 75d17b4..98d5df0 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/ReflectionsUtil.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/ReflectionsUtil.java
@@ -10,8 +10,6 @@ import org.bukkit.Server;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
-import org.bukkit.material.Step;
-import org.bukkit.material.WoodenStep;
import org.bukkit.util.Vector;
import java.io.File;
@@ -23,7 +21,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
-import java.util.logging.Level;
public class ReflectionsUtil {
public static Class> blockPosition = null;
@@ -151,109 +148,6 @@ public class ReflectionsUtil {
return toReturn;
}
- public static BoundingBox getBlockBoundingBox(Block block) {
- try {
- if (!isBukkitVerison("1_7")) {
- Object bPos = blockPosition.getConstructor(int.class, int.class, int.class).newInstance(block.getLocation().getBlockX(), block.getLocation().getBlockY(), block.getLocation().getBlockZ());
- Object world = getWorldHandle(block.getWorld());
- Object data = getMethodValue(getMethod(world.getClass(), "getType", blockPosition), world, bPos);
- Object blockNMS = getMethodValue(getMethod(getNMSClass("IBlockData"), "getBlock"), data);
-
- if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_13)) {
- if (!isNewVersion()) {
-
- if (getMethodValueNoST(getMethodNoST(blockNMS.getClass(), "a", World, blockPosition, iBlockData), blockNMS, world, bPos, data) != null
- && !BlockUtils.isSlab(block)) {
- BoundingBox box = toBoundingBox(getMethodValue(getMethod(blockNMS.getClass(), "a", World, blockPosition, iBlockData), blockNMS, world, bPos, data));
-
- if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_13)) {
- if (block.getType().toString().contains("STEP") && !block.getType().toString().contains("WOOD")) {
- Step slab = (Step) block.getType().getNewData(block.getData());
-
- box.minY = block.getY();
- box.maxY = block.getY();
- if (slab.isInverted()) {
- box = box.add(0, 0.5f, 0, 0, 1f, 0);
- } else {
- box = box.add(0, 0f, 0, 0, 0.5f, 0);
- }
- } else if (block.getType().toString().contains("STEP")) {
- WoodenStep slab = (WoodenStep) block.getType().getNewData(block.getData());
-
- box.minY = block.getY();
- box.maxY = block.getY();
- if (slab.isInverted()) {
- box = box.add(0, 0.5f, 0, 0, 1f, 0);
- } else {
- box = box.add(0, 0f, 0, 0, 0.5f, 0);
- }
- }
- }
- return box;
- } else if (getMethodValueNoST(getMethodNoST(vanillaBlock, "a", World, blockPosition, iBlockData), blockNMS, world, bPos, data) != null) {
- BoundingBox box = toBoundingBox(getMethodValue(getMethod(vanillaBlock, "a", World, blockPosition, iBlockData), blockNMS, world, bPos, data));
-
- if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_13)) {
- if (block.getType().toString().contains("STEP") && !block.getType().toString().contains("WOOD")) {
- Step slab = (Step) block.getType().getNewData(block.getData());
-
- box.minY = block.getY();
- box.maxY = block.getY();
- if (slab.isInverted()) {
- box = box.add(0, 0.5f, 0, 0, 1f, 0);
- } else {
- box = box.add(0, 0f, 0, 0, 0.5f, 0);
- }
- } else if (block.getType().toString().contains("STEP")) {
- WoodenStep slab = (WoodenStep) block.getType().getNewData(block.getData());
-
- box.minY = block.getY();
- box.maxY = block.getY();
- if (slab.isInverted()) {
- box = box.add(0, 0.5f, 0, 0, 1f, 0);
- } else {
- box = box.add(0, 0f, 0, 0, 0.5f, 0);
- }
- }
- }
- return box;
- } else {
- return new BoundingBox(block.getX(), block.getY(), block.getZ(), block.getX(), block.getY(), block.getZ());
- }
- } else {
- if (getMethodValueNoST(getMethodNoST(blockNMS.getClass(), "a", iBlockData, getNMSClass("IBlockAccess"), blockPosition), blockNMS, data, world, bPos) != null) {
- return toBoundingBox(getMethodValue(getMethod(blockNMS.getClass(), "a", iBlockData, getNMSClass("IBlockAccess"), blockPosition), blockNMS, data, world, bPos)).add(block.getX(), block.getY(), block.getZ(), block.getX(), block.getY(), block.getZ());
- } else if (getMethodValueNoST(getMethodNoST(vanillaBlock, "a", iBlockData, getNMSClass("IBlockAccess"), blockPosition), blockNMS, data, world, bPos) != null) {
- return toBoundingBox(getMethodValue(getMethod(vanillaBlock, "a", iBlockData, getNMSClass("IBlockAccess"), blockPosition), blockNMS, data, world, bPos)).add(block.getX(), block.getY(), block.getZ(), block.getX(), block.getY(), block.getZ());
- } else {
- return new BoundingBox(block.getX(), block.getY(), block.getZ(), block.getX(), block.getY(), block.getZ());
- }
- }
- } else {
- Object voxelShape = getMethodValue(getMethod(vanillaBlock, "a", iBlockData, getNMSClass("IBlockAccess"), blockPosition), blockNMS, data, world, bPos);
- Object axisAlignedBB = getMethodValue(getMethod(getNMSClass("VoxelShape"), "a"), voxelShape);
-
-
- return toBoundingBox(axisAlignedBB);
-
- }
- } else {
- Object blockNMS = getVanillaBlock(block);
- Object world = getWorldHandle(block.getWorld());
- if (getMethodValueNoST(getMethodNoST(vanillaBlock, "a", getNMSClass("World"), int.class, int.class, int.class), blockNMS, world, block.getLocation().getBlockX(), block.getLocation().getBlockY(), block.getLocation().getBlockZ()) != null) {
- return toBoundingBox(getMethodValue(getMethod(vanillaBlock, "a", getNMSClass("World"), int.class, int.class, int.class), blockNMS, world, block.getLocation().getBlockX(), block.getLocation().getBlockY(), block.getLocation().getBlockZ()));
- } else {
- //Bukkit.broadcastMessage(block.getType().name());
- return new BoundingBox(block.getX(), block.getY(), block.getZ(), block.getX(), block.getY(), block.getZ());
- }
- }
- } catch (Exception e) {
- Bukkit.getLogger().log(Level.SEVERE, "Error occured with block: " + block.getType().toString());
- e.printStackTrace();
- }
- return null;
- }
-
public static double getTPS(Server server) {
Object handle = getMethodValue(getMethod(getCBClass("CraftServer"), "getHandle"), server);
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/Vec3D.java b/Anticheat/src/main/java/dev/brighten/ac/utils/Vec3D.java
index 23fff4c..1b20579 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/Vec3D.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/Vec3D.java
@@ -5,12 +5,13 @@
package dev.brighten.ac.utils;
-import org.bukkit.Location;
+import lombok.SneakyThrows;
+import me.hydro.emulator.util.mcp.MathHelper;
import javax.annotation.Nullable;
import java.util.Objects;
-public class Vec3D {
+public class Vec3D implements Cloneable {
public static final Vec3D a = new Vec3D(0.0D, 0.0D, 0.0D);
public final double x;
public final double y;
@@ -34,10 +35,6 @@ public class Vec3D {
this.z = var5;
}
- public Vec3D(Location var1) {
- this(var1.getX(), var1.getY(), var1.getZ());
- }
-
public Vec3D a(Vec3D var1) {
return new Vec3D(var1.x - this.x, var1.y - this.y, var1.z - this.z);
}
@@ -47,8 +44,9 @@ public class Vec3D {
return var1 < 1.0E-4D ? a : new Vec3D(this.x / var1, this.y / var1, this.z / var1);
}
+ @SneakyThrows
public Vec3D clone() {
- return new Vec3D(x, y, z);
+ return (Vec3D) super.clone();
}
public double b(Vec3D var1) {
@@ -146,19 +144,17 @@ public class Vec3D {
public Vec3D a(float var1) {
float var2 = MathHelper.cos(var1);
float var3 = MathHelper.sin(var1);
- double var4 = this.x;
double var6 = this.y * (double)var2 + this.z * (double)var3;
double var8 = this.z * (double)var2 - this.y * (double)var3;
- return new Vec3D(var4, var6, var8);
+ return new Vec3D(this.x, var6, var8);
}
public Vec3D b(float var1) {
float var2 = MathHelper.cos(var1);
float var3 = MathHelper.sin(var1);
double var4 = this.x * (double)var2 + this.z * (double)var3;
- double var6 = this.y;
double var8 = this.z * (double)var2 - this.x * (double)var3;
- return new Vec3D(var4, var6, var8);
+ return new Vec3D(var4, this.y, var8);
}
@Override
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/CDL.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/CDL.java
index 0330d63..e7064a1 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/CDL.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/CDL.java
@@ -24,11 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import dev.brighten.ac.utils.json.JSONArray;
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONObject;
-import dev.brighten.ac.utils.json.JSONTokener;
-
/**
* This provides static methods to convert comma delimited text into a
* JSONArray, and to covert a JSONArray into comma delimited text. Comma
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/Cookie.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/Cookie.java
index 2594f68..f6063ce 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/Cookie.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/Cookie.java
@@ -24,10 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONObject;
-import dev.brighten.ac.utils.json.JSONTokener;
-
/**
* Convert a web browser cookie specification to a JSONObject and back.
* JSON and Cookies are both notations for name/value pairs.
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/CookieList.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/CookieList.java
index 28f0b80..13b1ef2 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/CookieList.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/CookieList.java
@@ -24,11 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import dev.brighten.ac.utils.json.Cookie;
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONObject;
-import dev.brighten.ac.utils.json.JSONTokener;
-
import java.util.Iterator;
/**
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/HTTP.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/HTTP.java
index fd29d05..e4b2b5d 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/HTTP.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/HTTP.java
@@ -24,10 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import dev.brighten.ac.utils.json.HTTPTokener;
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONObject;
-
import java.util.Iterator;
/**
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/HTTPTokener.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/HTTPTokener.java
index 6796c7a..0a44a1e 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/HTTPTokener.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/HTTPTokener.java
@@ -24,9 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONTokener;
-
/**
* The HTTPTokener extends the JSONTokener to provide additional methods
* for the parsing of HTTP headers.
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONArray.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONArray.java
index ebe680d..518b697 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONArray.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONArray.java
@@ -24,10 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONObject;
-import dev.brighten.ac.utils.json.JSONTokener;
-
import java.io.IOException;
import java.io.Writer;
import java.lang.reflect.Array;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONML.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONML.java
index 1f7a2ba..1e4a515 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONML.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONML.java
@@ -24,12 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import dev.brighten.ac.utils.json.JSONArray;
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONObject;
-import dev.brighten.ac.utils.json.XML;
-import dev.brighten.ac.utils.json.XMLTokener;
-
import java.util.Iterator;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONStringer.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONStringer.java
index 17200bf..85d8ed8 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONStringer.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONStringer.java
@@ -24,8 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import dev.brighten.ac.utils.json.JSONWriter;
-
import java.io.StringWriter;
/**
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONTokener.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONTokener.java
index c775c78..507408e 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONTokener.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONTokener.java
@@ -1,9 +1,5 @@
package dev.brighten.ac.utils.json;
-import dev.brighten.ac.utils.json.JSONArray;
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONObject;
-
import java.io.*;
/*
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONWriter.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONWriter.java
index 5247718..03a37c9 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONWriter.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/JSONWriter.java
@@ -1,8 +1,5 @@
package dev.brighten.ac.utils.json;
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONObject;
-
import java.io.IOException;
import java.io.Writer;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/XML.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/XML.java
index b63f3a1..e56516f 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/XML.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/XML.java
@@ -24,11 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import dev.brighten.ac.utils.json.JSONArray;
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONObject;
-import dev.brighten.ac.utils.json.XMLTokener;
-
import java.util.Iterator;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/json/XMLTokener.java b/Anticheat/src/main/java/dev/brighten/ac/utils/json/XMLTokener.java
index 2646f8f..39f5c81 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/json/XMLTokener.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/json/XMLTokener.java
@@ -24,10 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import dev.brighten.ac.utils.json.JSONException;
-import dev.brighten.ac.utils.json.JSONTokener;
-import dev.brighten.ac.utils.json.XML;
-
/**
* The XMLTokener extends the JSONTokener to provide additional methods
* for the parsing of XML texts.
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/math/FloatVector.java b/Anticheat/src/main/java/dev/brighten/ac/utils/math/FloatVector.java
index 5f2eb22..ac743df 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/math/FloatVector.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/math/FloatVector.java
@@ -1,10 +1,10 @@
package dev.brighten.ac.utils.math;
-import dev.brighten.ac.utils.MathHelper;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
+import me.hydro.emulator.util.mcp.MathHelper;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.util.Vector;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/math/IntVector.java b/Anticheat/src/main/java/dev/brighten/ac/utils/math/IntVector.java
index 36b0aa6..2174a59 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/math/IntVector.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/math/IntVector.java
@@ -1,10 +1,10 @@
package dev.brighten.ac.utils.math;
-import dev.brighten.ac.utils.MathHelper;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
+import me.hydro.emulator.util.mcp.MathHelper;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.util.Vector;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/menu/Menu.java b/Anticheat/src/main/java/dev/brighten/ac/utils/menu/Menu.java
index 4e8ca90..87ca5b9 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/menu/Menu.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/menu/Menu.java
@@ -1,6 +1,7 @@
package dev.brighten.ac.utils.menu;
import dev.brighten.ac.utils.menu.button.Button;
+import dev.brighten.ac.utils.menu.type.BukkitInventoryHolder;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/menu/MenuListener.java b/Anticheat/src/main/java/dev/brighten/ac/utils/menu/MenuListener.java
index 40bad57..4298615 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/menu/MenuListener.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/menu/MenuListener.java
@@ -4,8 +4,8 @@ import dev.brighten.ac.Anticheat;
import dev.brighten.ac.packet.ProtocolVersion;
import dev.brighten.ac.utils.BlockUtils;
import dev.brighten.ac.utils.Color;
-import dev.brighten.ac.utils.annotation.Init;
import dev.brighten.ac.utils.XMaterial;
+import dev.brighten.ac.utils.annotation.Init;
import dev.brighten.ac.utils.menu.button.Button;
import dev.brighten.ac.utils.menu.button.ClickAction;
import dev.brighten.ac.utils.menu.button.UpdatingButton;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/menu/preset/SettingsMenu.java b/Anticheat/src/main/java/dev/brighten/ac/utils/menu/preset/SettingsMenu.java
index 0b3b146..7de19e3 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/menu/preset/SettingsMenu.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/menu/preset/SettingsMenu.java
@@ -1,8 +1,8 @@
package dev.brighten.ac.utils.menu.preset;
-import dev.brighten.ac.utils.MathHelper;
import dev.brighten.ac.utils.menu.preset.button.SettingButton;
import dev.brighten.ac.utils.menu.type.impl.ChestMenu;
+import me.hydro.emulator.util.mcp.MathHelper;
public class SettingsMenu extends ChestMenu {
public SettingsMenu(String title, SettingButton... buttons) {
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/world/BlockData.java b/Anticheat/src/main/java/dev/brighten/ac/utils/world/BlockData.java
index b71b902..c800270 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/world/BlockData.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/world/BlockData.java
@@ -5,7 +5,6 @@ import dev.brighten.ac.handler.block.WrappedBlock;
import dev.brighten.ac.packet.ProtocolVersion;
import dev.brighten.ac.utils.BlockUtils;
import dev.brighten.ac.utils.MiscUtils;
-import dev.brighten.ac.utils.ReflectionsUtil;
import dev.brighten.ac.utils.XMaterial;
import dev.brighten.ac.utils.math.IntVector;
import dev.brighten.ac.utils.world.blocks.*;
@@ -51,10 +50,10 @@ public enum BlockData {
new SimpleCollisionBox(0.4375, 0.0, 0.4375, 0.5625, 0.875, 0.5625) //top
), Material.BREWING_STAND),
- _RAIL((protocol, player, b) -> ReflectionsUtil.getBlockBoundingBox(BlockUtils.getBlock(b.getLocation()))
+ /* _RAIL((protocol, player, b) -> ReflectionsUtil.getBlockBoundingBox(BlockUtils.getBlock(b.getLocation()))
.toCollisionBox(),Arrays.stream(Material.values())
.filter(mat -> mat.name().toLowerCase().contains("rail"))
- .toArray(Material[]::new)),
+ .toArray(Material[]::new)),*/
_ANVIL((protocol, player, b) -> {
int dir = b.getData() & 0b01;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/world/types/SimpleCollisionBox.java b/Anticheat/src/main/java/dev/brighten/ac/utils/world/types/SimpleCollisionBox.java
index c1422da..9c95ebf 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/world/types/SimpleCollisionBox.java
+++ b/Anticheat/src/main/java/dev/brighten/ac/utils/world/types/SimpleCollisionBox.java
@@ -83,7 +83,14 @@ public class SimpleCollisionBox implements CollisionBox {
}
public SimpleCollisionBox(Object aabb) {
- this(MinecraftReflection.fromAABB(aabb));
+ double[] box = MinecraftReflection.fromAABB(aabb);
+
+ this.minX = box[0];
+ this.minY = box[1];
+ this.minZ = box[2];
+ this.maxX = box[3];
+ this.maxY = box[4];
+ this.maxZ = box[5];
}
public void sort() {
@@ -343,7 +350,7 @@ public class SimpleCollisionBox implements CollisionBox {
}
public T toAxisAlignedBB() {
- return MinecraftReflection.toAABB(this);
+ return MinecraftReflection.toAABB(minX, minY, minZ, maxX, maxY, maxZ);
}
public AxisAlignedBB toNeo() {
diff --git a/Compat-1_19_R3/pom.xml b/Compat-1_19_R3/pom.xml
new file mode 100644
index 0000000..ed7fd53
--- /dev/null
+++ b/Compat-1_19_R3/pom.xml
@@ -0,0 +1,37 @@
+
+
+ 4.0.0
+
+ dev.brighten.ac
+ EnterpriseAnticheat
+ 1.0-SNAPSHOT
+
+
+ Compat-1_19_R3
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ spigot-repo
+ https://hub.spigotmc.org/nexus/content/repositories/snapshots/
+
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.19.4-R0.1-SNAPSHOT
+ provided
+
+
+
+
\ No newline at end of file
diff --git a/Compat/pom.xml b/Compat/pom.xml
new file mode 100644
index 0000000..9777deb
--- /dev/null
+++ b/Compat/pom.xml
@@ -0,0 +1,59 @@
+
+
+ 4.0.0
+
+ dev.brighten.ac
+ EnterpriseAnticheat
+ 1.0-SNAPSHOT
+
+
+ Compat
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ spigot-repo
+ https://hub.spigotmc.org/nexus/content/repositories/snapshots/
+
+
+ funkemunky-releases
+ https://nexus.funkemunky.cc/content/repositories/releases/
+
+
+
+
+
+ me.hydro
+ emulator
+ 1.2-neo
+ compile
+
+
+ org.spigotmc
+ spigot-api
+ 1.19.4-R0.1-SNAPSHOT
+ provided
+
+
+ org.github.spigot
+ 1.8.8
+ 1.8.8
+ provided
+
+
+ org.github.spigot
+ 1.7.10
+ 1.7.10
+ provided
+
+
+
+
\ No newline at end of file
diff --git a/Anticheat/src/main/java/dev/brighten/ac/packet/ProtocolVersion.java b/Compat/src/main/java/dev/brighten/ac/packet/ProtocolVersion.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/packet/ProtocolVersion.java
rename to Compat/src/main/java/dev/brighten/ac/packet/ProtocolVersion.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/FastTrig.java b/Compat/src/main/java/dev/brighten/ac/utils/FastTrig.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/FastTrig.java
rename to Compat/src/main/java/dev/brighten/ac/utils/FastTrig.java
diff --git a/Compat/src/main/java/dev/brighten/ac/utils/KLocation.java b/Compat/src/main/java/dev/brighten/ac/utils/KLocation.java
new file mode 100644
index 0000000..c6cd753
--- /dev/null
+++ b/Compat/src/main/java/dev/brighten/ac/utils/KLocation.java
@@ -0,0 +1,132 @@
+package dev.brighten.ac.utils;
+
+import org.bukkit.Location;
+import org.bukkit.World;
+import org.bukkit.util.Vector;
+
+import java.util.Objects;
+
+public class KLocation implements Cloneable {
+ public double x, y, z;
+ public float yaw, pitch;
+ public long timeStamp;
+
+ public KLocation(double x, double y, double z, float yaw, float pitch, long timeStamp) {
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ this.yaw = yaw;
+ this.pitch = pitch;
+ this.timeStamp = timeStamp;
+ }
+
+ public KLocation(double x, double y, double z, float yaw, float pitch) {
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ this.yaw = yaw;
+ this.pitch = pitch;
+ this.timeStamp = System.currentTimeMillis();
+ }
+
+ public KLocation(double x, double y, double z) {
+ this.x = x;
+ this.y = y;
+ this.z = z;
+
+ this.timeStamp = System.currentTimeMillis();
+ }
+
+ public KLocation(Vector vector) {
+ this.x = vector.getX();
+ this.y = vector.getY();
+ this.z = vector.getZ();
+ this.timeStamp = System.currentTimeMillis();
+ }
+
+ public KLocation(Location location) {
+ this.x = location.getX();
+ this.y = location.getY();
+ this.z = location.getZ();
+ this.yaw = location.getYaw();
+ this.pitch = location.getPitch();
+ this.timeStamp = System.currentTimeMillis();
+ }
+
+ public Vector toVector() {
+ return new Vector(x, y, z);
+ }
+
+ public Location toLocation(World world) {
+ return new Location(world, x, y, z, yaw, pitch);
+ }
+
+ @SuppressWarnings("MethodDoesntCallSuperMethod")
+ @Override
+ public KLocation clone() {
+ return new KLocation(x, y, z, yaw, pitch, timeStamp);
+ }
+
+ public double distanceSquared(KLocation other) {
+ double dx = (x - other.x), dy = (y - other.y), dz = (z - other.z);
+ return dx * dx + dy * dy + dz * dz;
+ }
+
+ public double distance(KLocation other) {
+ return Math.sqrt(distanceSquared(other));
+ }
+
+ public KLocation add(double x, double y, double z) {
+ this.x+= x;
+ this.y+= y;
+ this.z+= z;
+ return this;
+ }
+
+ public KLocation subtract(double x, double y, double z) {
+ this.x-= x;
+ this.y-= y;
+ this.z-= z;
+ return this;
+ }
+
+ public KLocation setLocation(KLocation loc) {
+ this.x = loc.x;
+ this.y = loc.y;
+ this.z = loc.z;
+ this.yaw = loc.yaw;
+ this.pitch = loc.pitch;
+ this.timeStamp = loc.timeStamp;
+
+ return this;
+ }
+
+ public Vector getDirection() {
+ return MathUtils.getDirection(this);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ KLocation kLocation = (KLocation) o;
+ return Double.compare(kLocation.x, x) == 0 && Double.compare(kLocation.y, y) == 0 && Double.compare(kLocation.z, z) == 0 && Float.compare(kLocation.yaw, yaw) == 0 && Float.compare(kLocation.pitch, pitch) == 0 && timeStamp == kLocation.timeStamp;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(x, y, z, yaw, pitch, timeStamp);
+ }
+
+ @Override
+ public String toString() {
+ return "KLocation{" +
+ "x=" + x +
+ ", y=" + y +
+ ", z=" + z +
+ ", yaw=" + yaw +
+ ", pitch=" + pitch +
+ ", timeStamp=" + timeStamp +
+ '}';
+ }
+}
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/MathUtils.java b/Compat/src/main/java/dev/brighten/ac/utils/MathUtils.java
similarity index 94%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/MathUtils.java
rename to Compat/src/main/java/dev/brighten/ac/utils/MathUtils.java
index 7cdcabd..b5771f6 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/MathUtils.java
+++ b/Compat/src/main/java/dev/brighten/ac/utils/MathUtils.java
@@ -1,6 +1,7 @@
package dev.brighten.ac.utils;
import lombok.val;
+import me.hydro.emulator.util.mcp.MathHelper;
import org.bukkit.Location;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@@ -13,6 +14,8 @@ import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
+//
+@SuppressWarnings("unused")
public class MathUtils {
public static double GROUND_DIVISOR = 0.015625;
@@ -239,13 +242,7 @@ public class MathUtils {
}
public static double getMedian(List data) {
- if(data.size() > 1) {
- if (data.size() % 2 == 0)
- return (data.get(data.size() / 2) + data.get(data.size() / 2 - 1)) / 2;
- else
- return data.get(Math.round(data.size() / 2f));
- }
- return 0;
+ return calculateDoubleMedian(data);
}
public static float getMedianFloat(List data) {
@@ -265,7 +262,18 @@ public class MathUtils {
data.add(number.doubleValue());
}
- return getMedianFloat(data);
+ return calculateDoubleMedian(data);
+ }
+
+ private static double calculateDoubleMedian(List data) {
+ if(data.size() > 1) {
+ if (data.size() % 2 == 0)
+ return (data.get(data.size() / 2) + data.get(data.size() / 2 - 1)) / 2;
+ else
+ return data.get(Math.round(data.size() / 2f));
+ }
+
+ return 0;
}
//Copied from apache math Kurtosis class.
@@ -523,22 +531,13 @@ public class MathUtils {
return Arrays.stream(equals).allMatch(equal -> MathUtils.getDelta(equalTo, equal) < accuracy);
}
- public static double getDistanceToBox(Vector vec, BoundingBox box) {
- return vec.distance(getCenterOfBox(box));
- }
-
- public static Vector getCenterOfBox(BoundingBox box) {
- return box.getMinimum().midpoint(box.getMaximum());
- }
-
//Returns -1 if fails.
- public static T tryParse(String string) {
+ public static Number tryParse(String string) {
try {
- return (T)(Number)Double.parseDouble(string);
- } catch(NumberFormatException e) {
-
+ return Double.parseDouble(string);
+ } catch(NumberFormatException exception) {
+ return (-1);
}
- return (T)(Number)(-1);
}
//A lighter version of the Java hypotenuse function.
@@ -668,10 +667,10 @@ public class MathUtils {
}
public static Vector getDirection(float yaw, float pitch) {
- float f = MathHelper.cos(-yaw * 0.017453292F - (float)Math.PI);
- float f1 = MathHelper.sin(-yaw * 0.017453292F - (float)Math.PI);
- float f2 = -MathHelper.cos(-pitch * 0.017453292F);
- float f3 = MathHelper.sin(-pitch * 0.017453292F);
+ float f = MathHelper.cos(MathHelper.FastMathType.VANILLA, -yaw * 0.017453292F - (float)Math.PI);
+ float f1 = MathHelper.sin(MathHelper.FastMathType.VANILLA, -yaw * 0.017453292F - (float)Math.PI);
+ float f2 = -MathHelper.cos(MathHelper.FastMathType.VANILLA, -pitch * 0.017453292F);
+ float f3 = MathHelper.sin(MathHelper.FastMathType.VANILLA, -pitch * 0.017453292F);
return new Vector(f1 * f2, f3, f * f2);
}
@@ -771,33 +770,13 @@ public class MathUtils {
return Math.abs(from.getY() - to.getY());
}
- public static int getDistanceToGround(Player p) {
- Location loc = p.getLocation().clone();
- double y = loc.getBlockY();
- int distance = 0;
- for (double i = y; i >= 0.0; i -= 1.0) {
- loc.setY(i);
- if (BlockUtils.getBlock(loc).getType().isSolid() || BlockUtils.getBlock(loc).isLiquid()) break;
- ++distance;
- }
- return distance;
- }
-
public static double trim(int degree, double d) {
- String format = "#.#";
- for (int i = 1; i < degree; ++i) {
- format = format + "#";
- }
- DecimalFormat twoDForm = new DecimalFormat(format);
+ DecimalFormat twoDForm = new DecimalFormat("#.#" + "#".repeat(Math.max(0, degree - 1)));
return Double.parseDouble(twoDForm.format(d).replaceAll(",", "."));
}
public static float trimFloat(int degree, float d) {
- String format = "#.#";
- for (int i = 1; i < degree; ++i) {
- format = format + "#";
- }
- DecimalFormat twoDForm = new DecimalFormat(format);
+ DecimalFormat twoDForm = new DecimalFormat("#.#" + "#".repeat(Math.max(0, degree - 1)));
return Float.parseFloat(twoDForm.format(d).replaceAll(",", "."));
}
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/Tuple.java b/Compat/src/main/java/dev/brighten/ac/utils/Tuple.java
similarity index 87%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/Tuple.java
rename to Compat/src/main/java/dev/brighten/ac/utils/Tuple.java
index f2fe76a..6f054be 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/Tuple.java
+++ b/Compat/src/main/java/dev/brighten/ac/utils/Tuple.java
@@ -15,9 +15,8 @@ public class Tuple {
}
public boolean equals(Object object) {
- if (object instanceof Tuple) {
- Tuple toCompare = (Tuple) object;
-
+ if (this.getClass().isInstance(object)) {
+ var toCompare = (Tuple, ?>) object;
return one.equals(toCompare.one) && two.equals(toCompare.two);
} else return false;
}
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/BiSupplier.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/BiSupplier.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/BiSupplier.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/BiSupplier.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/Interval.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/Interval.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/Interval.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/Interval.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/MethodFunction.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/MethodFunction.java
similarity index 82%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/MethodFunction.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/MethodFunction.java
index fd718e6..0163a0b 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/MethodFunction.java
+++ b/Compat/src/main/java/dev/brighten/ac/utils/objects/MethodFunction.java
@@ -1,7 +1,5 @@
package dev.brighten.ac.utils.objects;
-import dev.brighten.ac.utils.MiscUtils;
-
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.function.BiFunction;
@@ -62,13 +60,13 @@ public class MethodFunction {
if(function != null) {
return (T) function.apply(instance);
} else if(biFunc != null) {
- return (T) biFunc.apply(instance, MiscUtils.getArgOrNull(args, 0));
+ return (T) biFunc.apply(instance, getArgOrNull(args, 0));
} else if(triFunc != null) {
- return (T) triFunc.apply(instance, MiscUtils.getArgOrNull(args, 0),
- MiscUtils.getArgOrNull(args, 1));
+ return (T) triFunc.apply(instance, getArgOrNull(args, 0),
+ getArgOrNull(args, 1));
} else if(quadFunc != null) {
- return (T) quadFunc.apply(instance, MiscUtils.getArgOrNull(args, 0),
- MiscUtils.getArgOrNull(args, 1), MiscUtils.getArgOrNull(args, 2));
+ return (T) quadFunc.apply(instance, getArgOrNull(args, 0),
+ getArgOrNull(args, 1), getArgOrNull(args, 2));
}
}
@@ -79,4 +77,11 @@ public class MethodFunction {
return null;
}
}
+
+ private static T getArgOrNull(T[] array, int index) {
+ if(array.length > index) {
+ return array[index];
+ }
+ return null;
+ }
}
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/MultiFunction.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/MultiFunction.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/MultiFunction.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/MultiFunction.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/QuadFunction.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/QuadFunction.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/QuadFunction.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/QuadFunction.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/RemoteClassLoader.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/RemoteClassLoader.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/RemoteClassLoader.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/RemoteClassLoader.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/TriFunction.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/TriFunction.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/TriFunction.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/TriFunction.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/VariableValue.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/VariableValue.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/VariableValue.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/VariableValue.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/evicting/ConcurrentEvictingList.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/evicting/ConcurrentEvictingList.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/evicting/ConcurrentEvictingList.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/evicting/ConcurrentEvictingList.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/evicting/ConcurrentEvictingMap.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/evicting/ConcurrentEvictingMap.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/evicting/ConcurrentEvictingMap.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/evicting/ConcurrentEvictingMap.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/evicting/EvictingList.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/evicting/EvictingList.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/evicting/EvictingList.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/evicting/EvictingList.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/evicting/EvictingMap.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/evicting/EvictingMap.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/evicting/EvictingMap.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/evicting/EvictingMap.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/filtered/ConcurrentFilteredList.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/filtered/ConcurrentFilteredList.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/filtered/ConcurrentFilteredList.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/filtered/ConcurrentFilteredList.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/filtered/ConcurrentFilteredSet.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/filtered/ConcurrentFilteredSet.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/filtered/ConcurrentFilteredSet.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/filtered/ConcurrentFilteredSet.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/filtered/FilteredList.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/filtered/FilteredList.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/filtered/FilteredList.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/filtered/FilteredList.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/filtered/FilteredSet.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/filtered/FilteredSet.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/filtered/FilteredSet.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/filtered/FilteredSet.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/listmap/ConcurrentListMap.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/listmap/ConcurrentListMap.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/listmap/ConcurrentListMap.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/listmap/ConcurrentListMap.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/listmap/HashListMap.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/listmap/HashListMap.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/listmap/HashListMap.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/listmap/HashListMap.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/objects/listmap/ListMap.java b/Compat/src/main/java/dev/brighten/ac/utils/objects/listmap/ListMap.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/objects/listmap/ListMap.java
rename to Compat/src/main/java/dev/brighten/ac/utils/objects/listmap/ListMap.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/reflections/Reflections.java b/Compat/src/main/java/dev/brighten/ac/utils/reflections/Reflections.java
similarity index 98%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/reflections/Reflections.java
rename to Compat/src/main/java/dev/brighten/ac/utils/reflections/Reflections.java
index 69aeb60..792e31a 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/reflections/Reflections.java
+++ b/Compat/src/main/java/dev/brighten/ac/utils/reflections/Reflections.java
@@ -8,10 +8,10 @@
*/
package dev.brighten.ac.utils.reflections;
-import dev.brighten.ac.packet.ProtocolVersion;
import dev.brighten.ac.utils.objects.QuadFunction;
import dev.brighten.ac.utils.objects.TriFunction;
import dev.brighten.ac.utils.reflections.types.WrappedClass;
+import dev.brighten.ac.packet.ProtocolVersion;
import lombok.Getter;
import lombok.SneakyThrows;
import lombok.val;
@@ -61,10 +61,6 @@ public class Reflections {
}
}
- public void hi() {
- System.out.println("hi");
- }
-
public static WrappedClass getClass(String name) {
try {
return new WrappedClass(Class.forName(name));
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/reflections/impl/CraftReflection.java b/Compat/src/main/java/dev/brighten/ac/utils/reflections/impl/CraftReflection.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/reflections/impl/CraftReflection.java
rename to Compat/src/main/java/dev/brighten/ac/utils/reflections/impl/CraftReflection.java
index cb12bf5..5f3e838 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/reflections/impl/CraftReflection.java
+++ b/Compat/src/main/java/dev/brighten/ac/utils/reflections/impl/CraftReflection.java
@@ -1,9 +1,9 @@
package dev.brighten.ac.utils.reflections.impl;
-import dev.brighten.ac.packet.ProtocolVersion;
import dev.brighten.ac.utils.reflections.Reflections;
import dev.brighten.ac.utils.reflections.types.WrappedClass;
import dev.brighten.ac.utils.reflections.types.WrappedMethod;
+import dev.brighten.ac.packet.ProtocolVersion;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.Material;
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/reflections/impl/MinecraftReflection.java b/Compat/src/main/java/dev/brighten/ac/utils/reflections/impl/MinecraftReflection.java
similarity index 92%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/reflections/impl/MinecraftReflection.java
rename to Compat/src/main/java/dev/brighten/ac/utils/reflections/impl/MinecraftReflection.java
index 60b8556..5187773 100644
--- a/Anticheat/src/main/java/dev/brighten/ac/utils/reflections/impl/MinecraftReflection.java
+++ b/Compat/src/main/java/dev/brighten/ac/utils/reflections/impl/MinecraftReflection.java
@@ -1,13 +1,11 @@
package dev.brighten.ac.utils.reflections.impl;
import dev.brighten.ac.packet.ProtocolVersion;
-import dev.brighten.ac.utils.BoundingBox;
import dev.brighten.ac.utils.reflections.Reflections;
import dev.brighten.ac.utils.reflections.types.WrappedClass;
import dev.brighten.ac.utils.reflections.types.WrappedConstructor;
import dev.brighten.ac.utils.reflections.types.WrappedField;
import dev.brighten.ac.utils.reflections.types.WrappedMethod;
-import dev.brighten.ac.utils.world.types.SimpleCollisionBox;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.entity.HumanEntity;
@@ -179,21 +177,6 @@ public class MinecraftReflection {
return getMainThread(CraftReflection.getMinecraftServer());
}
- //a, b, c is minX, minY, minZ
- //d, e, f is maxX, maxY, maxZ
- public static BoundingBox fromAABB(Object aabb) {
- double a, b, c, d, e, f;
-
- a = aBB.get(aabb);
- b = bBB.get(aabb);
- c = cBB.get(aabb);
- d = dBB.get(aabb);
- e = eBB.get(aabb);
- f = fBB.get(aabb);
-
- return new BoundingBox((float) a,(float) b,(float) c,(float) d,(float) e,(float) f);
- }
-
//Can either use Player or EntityPlayer object.
public static T getPlayerConnection(Object player) {
@@ -229,26 +212,37 @@ public class MinecraftReflection {
return itemStackAsBukkitCopy.invoke(null, vanillaItemStack);
}
- public static T toAABB(BoundingBox box) {
- if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) {
- return idioticOldStaticConstructorAABB
- .invoke(null,
- (double)box.minX, (double)box.minY, (double)box.minZ,
- (double)box.maxX, (double)box.maxY, (double)box.maxZ);
- } else return aabbConstructor
- .newInstance((double)box.minX, (double)box.minY, (double)box.minZ,
- (double)box.maxX, (double)box.maxY, (double)box.maxZ);
+ /**
+ * Extracts AxisAlignedBB Points.
+ * @param aabb AxisAlignedBB
+ * @return double[6] of points.
+ */
+ public static double[] fromAABB(Object aabb) {
+ double[] boxArray = new double[6];
+
+ boxArray[0] = aBB.get(aabb);
+ boxArray[1] = bBB.get(aabb);
+ boxArray[2] = cBB.get(aabb);
+ boxArray[3] = dBB.get(aabb);
+ boxArray[4] = eBB.get(aabb);
+ boxArray[5] = fBB.get(aabb);
+
+ return boxArray;
}
- public static T toAABB(SimpleCollisionBox box) {
+ /**
+ * Creates a new AxisAlignedBB.
+ * @return new AxisAlignedBB
+ */
+ public static T toAABB(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) {
return idioticOldStaticConstructorAABB
.invoke(null,
- box.minX, box.minY, box.minZ,
- box.maxX, box.maxY, box.maxZ);
+ minX, minY, minZ,
+ maxX, maxY, maxZ);
} else return aabbConstructor
- .newInstance(box.minX, box.minY, box.minZ,
- box.maxX, box.maxY, box.maxZ);
+ .newInstance(minX, minY, minZ,
+ maxX, maxY, maxZ);
}
//Either bukkit or vanilla world object can be used.
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedClass.java b/Compat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedClass.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedClass.java
rename to Compat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedClass.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedConstructor.java b/Compat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedConstructor.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedConstructor.java
rename to Compat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedConstructor.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedField.java b/Compat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedField.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedField.java
rename to Compat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedField.java
diff --git a/Anticheat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedMethod.java b/Compat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedMethod.java
similarity index 100%
rename from Anticheat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedMethod.java
rename to Compat/src/main/java/dev/brighten/ac/utils/reflections/types/WrappedMethod.java
diff --git a/pom.xml b/pom.xml
index 1a6fd49..51a85d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,6 +14,8 @@
API
LegacyAPI
ModernAPI
+ Compat
+ Compat-1_19_R3