funkemunky

Untitled

Dec 23rd, 2017
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.17 KB | None | 0 0
  1. package anticheat.checks.movement;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import java.util.UUID;
  6.  
  7. import org.bukkit.Location;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.event.Event;
  10. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  11. import org.bukkit.event.player.PlayerMoveEvent;
  12. import org.bukkit.event.player.PlayerQuitEvent;
  13. import org.bukkit.potion.PotionEffectType;
  14.  
  15. import anticheat.Exile;
  16. import anticheat.detections.Checks;
  17. import anticheat.detections.ChecksListener;
  18. import anticheat.detections.ChecksType;
  19. import anticheat.events.PacketedMovementEvent;
  20. import anticheat.user.User;
  21. import anticheat.utils.Color;
  22. import anticheat.utils.MathUtils;
  23. import anticheat.utils.MiscUtils;
  24. import anticheat.utils.PlayerUtils;
  25.  
  26. @ChecksListener(events = { PlayerMoveEvent.class, PacketedMovementEvent.class, EntityDamageByEntityEvent.class, PlayerQuitEvent.class })
  27. public class Speed extends Checks {
  28.  
  29. private Map<UUID, Integer> verbose;
  30.  
  31. public Speed() {
  32. super("Speed", ChecksType.MOVEMENT, Exile.getAC(), 3, true, true);
  33.  
  34. this.verbose = new HashMap<UUID, Integer>();
  35. }
  36.  
  37. @Override
  38. protected void onEvent(Event event) {
  39. if (!this.getState()) {
  40. return;
  41. }
  42.  
  43. if (event instanceof PlayerMoveEvent) {
  44.  
  45. PlayerMoveEvent e = (PlayerMoveEvent) event;
  46. Player player = e.getPlayer();
  47.  
  48. User user = Exile.getAC().getUserManager().getUser(player.getUniqueId());
  49.  
  50. double vector = MathUtils.offset(MathUtils.getHorizontalVector(e.getFrom().toVector()),
  51. MathUtils.getHorizontalVector(e.getTo().toVector()));
  52. double maxSpeed = 0;
  53. int speed = PlayerUtils.getPotionEffectLevel(player, PotionEffectType.SPEED);
  54.  
  55. if(player.isFlying()) {
  56. return;
  57. }
  58. Location below = player.getLocation().clone().subtract(0.0D, 1.0D, 0.0D);
  59.  
  60. int verbose = this.verbose.getOrDefault(player.getUniqueId(), 0);
  61.  
  62. if(user.getGroundTicks() > 0) {
  63. if(user.getGroundTicks() == 1) {
  64. if(speed == 0) {
  65. maxSpeed = 0.52;
  66. if(user.getBlockTicks() > 0) {
  67. maxSpeed = 0.586;
  68. }
  69. } else if(speed == 1) {
  70. maxSpeed = 0.57;
  71. if(user.getBlockTicks() > 0) {
  72. maxSpeed = 0.63;
  73. }
  74. } else if(speed == 2) {
  75. maxSpeed = 0.612;
  76. if(user.getBlockTicks() > 0) {
  77. maxSpeed = 0.687;
  78. }
  79. } else if(speed == 3) {
  80. maxSpeed = 0.7;
  81. if(user.getBlockTicks() > 0) {
  82. maxSpeed = 0.75;
  83. }
  84. } else if(speed == 4) {
  85. maxSpeed = 0.78;
  86. if(user.getBlockTicks() > 0) {
  87. maxSpeed = 0.83;
  88. }
  89. } else if(speed >= 5) {
  90. maxSpeed = 0.878 + ((speed - 5) * 0.9);
  91. if(user.getBlockTicks() > 0) {
  92. maxSpeed = 0.93 + ((speed - 5) * 0.9);
  93. }
  94. }
  95. } else if(user.getGroundTicks() == 2) {
  96. if(speed == 0) {
  97. maxSpeed = 0.54;
  98. } else if(speed == 1) {
  99. maxSpeed = 0.572;
  100. } else if(speed == 2) {
  101. maxSpeed = 0.62;
  102. } else if(speed == 3) {
  103. maxSpeed = 0.715;
  104. } else if(speed == 4) {
  105. maxSpeed = 0.765;
  106. } else if(speed >= 5) {
  107. maxSpeed = 0.812 + ((speed - 5) * 0.584);
  108. }
  109. } else if(user.getGroundTicks() == 3) {
  110. if(speed == 0) {
  111. maxSpeed = 0.498;
  112. } else if(speed == 1) {
  113. maxSpeed = 0.56;
  114. } else if(speed == 2) {
  115. maxSpeed = 0.61;
  116. } else if(speed == 3) {
  117. maxSpeed = 0.7118;
  118. } else if(speed == 4) {
  119. maxSpeed = 0.761;
  120. } else if(speed >= 5) {
  121. maxSpeed = 0.816 + ((speed - 5) * 0.59);
  122. }
  123. } else if(user.getGroundTicks() == 4) {
  124. if(speed == 0) {
  125. maxSpeed = 0.491;
  126. } else if(speed == 1) {
  127. maxSpeed = 0.5484;
  128. } else if(speed == 2) {
  129. maxSpeed = 0.601;
  130. } else if(speed == 3) {
  131. maxSpeed = 0.71001;
  132. } else if(speed == 4) {
  133. maxSpeed = 0.7621;
  134. } else if(speed >= 5) {
  135. maxSpeed = 0.818 + ((speed - 5) * 0.59);
  136. }
  137. } else if(user.getGroundTicks() >= 5) {
  138. if(speed == 0) {
  139. maxSpeed = 0.4901;
  140.  
  141. if(MiscUtils.isStair(below.getBlock())) {
  142. maxSpeed = 0.562;
  143. }
  144. } else if(speed == 1) {
  145. maxSpeed = 0.5401;
  146.  
  147. if(MiscUtils.isStair(below.getBlock())) {
  148. maxSpeed = 0.562;
  149. }
  150. } else if(speed == 2) {
  151. maxSpeed = 0.6;
  152. } else if(speed == 3) {
  153. maxSpeed = 0.71;
  154. } else if(speed == 4) {
  155. maxSpeed = 0.762;
  156. } else if(speed >= 5) {
  157. maxSpeed = 0.82 + ((speed - 5) * 0.6);
  158. }
  159. }
  160. } else {
  161. if(user.getAirTicks() == 1) {
  162. if(speed == 0) {
  163. maxSpeed = 0.352845;
  164.  
  165. if(user.getBlockTicks() > 0) {
  166. maxSpeed = 0.381;
  167. }
  168. } else if(speed == 1) {
  169. maxSpeed = 0.37;
  170.  
  171. if(user.getBlockTicks() > 0) {
  172. maxSpeed = 0.397;
  173. }
  174. } else if(speed == 2) {
  175. maxSpeed = 0.385;
  176.  
  177. if(user.getBlockTicks() > 0) {
  178. maxSpeed = 0.413;
  179. }
  180. } else if(speed == 3) {
  181. maxSpeed = 0.416;
  182.  
  183. if(user.getBlockTicks() > 0) {
  184. maxSpeed = 0.441;
  185. }
  186. } else if(speed == 4) {
  187. maxSpeed = 0.432;
  188.  
  189. if(user.getBlockTicks() > 0) {
  190. maxSpeed = 0.462;
  191. }
  192. } else if(speed >= 5) {
  193. maxSpeed = 0.454 + ((speed - 5) * 0.5);
  194.  
  195. if(user.getBlockTicks() > 0) {
  196. maxSpeed = 0.491 + ((speed - 5) * 0.5);
  197. }
  198. }
  199.  
  200. } else if(user.getAirTicks() == 2) {
  201. if(speed == 0) {
  202. maxSpeed = 0.347;
  203.  
  204. if(user.getBlockTicks() > 0) {
  205. maxSpeed = 0.68;
  206. }
  207. } else if(speed == 1) {
  208. maxSpeed = 0.362;
  209. if(user.getBlockTicks() > 0) {
  210. maxSpeed = 0.72;
  211. }
  212. } else if(speed == 2) {
  213. maxSpeed = 0.375;
  214. if(user.getBlockTicks() > 0) {
  215. maxSpeed = 0.8;
  216. }
  217. } else if(speed == 3) {
  218. maxSpeed = 0.404;
  219. if(user.getBlockTicks() > 0) {
  220. maxSpeed = 0.86;
  221. }
  222. } else if(speed == 4) {
  223. maxSpeed = 0.419;
  224. if(user.getBlockTicks() > 0) {
  225. maxSpeed = 0.92;
  226. }
  227. } else if(speed >= 5) {
  228. maxSpeed = 0.44 + ((speed - 5) * 0.5);
  229. if(user.getBlockTicks() > 0) {
  230. maxSpeed = 1.0 + ((speed - 5) * 0.5);
  231. }
  232. }
  233.  
  234. } else if(user.getAirTicks() == 3) {
  235. if(speed == 0) {
  236. maxSpeed = 0.341;
  237. } else if(speed == 1) {
  238. maxSpeed = 0.356;
  239. } else if(speed == 2) {
  240. maxSpeed = 0.37;
  241. } else if(speed == 3) {
  242. maxSpeed = 0.395;
  243. } else if(speed == 4) {
  244. maxSpeed = 0.408;
  245. } else if(speed >= 5) {
  246. maxSpeed = 0.429 + ((speed - 5) * 0.38);
  247. }
  248.  
  249. } else if(user.getAirTicks() == 4) {
  250. if(speed == 0) {
  251. maxSpeed = 0.34;
  252. } else if(speed == 1) {
  253. maxSpeed = 0.349;
  254. } else if(speed == 2) {
  255. maxSpeed = 0.359;
  256. } else if(speed == 3) {
  257. maxSpeed = 0.385;
  258. } else if(speed == 4) {
  259. maxSpeed = 0.396;
  260. } else if(speed >= 5) {
  261. maxSpeed = 0.414 + ((speed - 5) * 0.425);
  262. }
  263.  
  264. } else if(user.getAirTicks() >= 5) {
  265. if(speed == 0) {
  266. maxSpeed = 0.613;
  267. } else if(speed == 1) {
  268. maxSpeed = 0.645;
  269. } else if(speed == 2) {
  270. maxSpeed = 0.679;
  271. } else if(speed == 3) {
  272. maxSpeed = 0.74;
  273. } else if(speed == 4) {
  274. maxSpeed = 0.78;
  275. } else if(speed >= 5) {
  276. maxSpeed = 0.805 + ((speed - 5) * 0.4);
  277. }
  278. }
  279. if(user.getIceTicks() > 0) {
  280. maxSpeed+= 0.2;
  281. }
  282. if(PlayerUtils.isInWater(player) ) {
  283. maxSpeed -= 0.1;
  284. }
  285. }
  286.  
  287.  
  288. if(vector > maxSpeed) {
  289. debug("Verbose (+1): " + verbose + " Speed: " + vector + " MaxSpeed: " + maxSpeed);
  290. verbose+= 2;
  291. } else {
  292. verbose = verbose > 0 ? verbose - 1 : verbose;
  293. }
  294.  
  295. if(verbose > 7) {
  296. user.setVL(this, user.getVL(this) + 1);
  297. verbose = 0;
  298. alert(player, Color.Gray + "Reason: " + Color.White + "Kanker");
  299. }
  300.  
  301. this.verbose.put(player.getUniqueId(), verbose);
  302. }
  303. if (event instanceof PlayerQuitEvent) {
  304. PlayerQuitEvent e = (PlayerQuitEvent) event;
  305.  
  306. if(verbose.containsKey(e.getPlayer().getUniqueId())) {
  307. verbose.remove(e.getPlayer().getUniqueId());
  308. }
  309. }
  310. }
Advertisement
Add Comment
Please, Sign In to add comment