Skip to content

Commit 927a7cc

Browse files
committed
Commit
1 parent 1e587f5 commit 927a7cc

14 files changed

Lines changed: 108 additions & 103 deletions

src/main/java/me/nik/combatplus/CombatPlus.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public void onEnable() {
8484
}
8585

8686
//Hook AntiCheat
87-
new ACManager().hookAntiCheat();
87+
new ACManager().hookMatrixAC();
8888
}
8989
@Override
9090
public void onDisable() {

src/main/java/me/nik/combatplus/handlers/UpdateChecker.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public UpdateChecker(CombatPlus plugin) {
1919
this.plugin = plugin;
2020
}
2121

22-
public static String VERSION = null;
22+
public static String newVersion = null;
2323

2424
@Override
2525
public void run() {
@@ -28,8 +28,8 @@ public void run() {
2828
String version = new BufferedReader(new InputStreamReader(connection.getInputStream())).readLine();
2929

3030
if (!plugin.getDescription().getVersion().equalsIgnoreCase(version)) {
31-
VERSION = version;
32-
plugin.consoleMessage(Messenger.message("update_reminder").replaceAll("%current%", plugin.getDescription().getVersion()).replaceAll("%new%", VERSION));
31+
newVersion = version;
32+
plugin.consoleMessage(Messenger.message("update_reminder").replaceAll("%current%", plugin.getDescription().getVersion()).replaceAll("%new%", newVersion));
3333
plugin.registerEvent(new UpdateReminder(plugin));
3434
} else {
3535
plugin.consoleMessage(Messenger.message("console.update_not_found"));

src/main/java/me/nik/combatplus/listeners/EnchantedGoldenApple.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ public void run() {
4646
}.runTaskLaterAsynchronously(plugin, cdtime * 20);
4747
}
4848

49-
// This Listener adds a cooldown between eating Enchanted Golden Apples
49+
/*
50+
This Listener adds a cooldown between eating Enchanted Golden Apples
51+
*/
5052

5153
@EventHandler(ignoreCancelled = true)
5254
public void onEatEnchantedGoldenApple(PlayerItemConsumeEvent e) {

src/main/java/me/nik/combatplus/listeners/Enderpearl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ public void run() {
4747
}.runTaskLaterAsynchronously(plugin, cdtime * 20);
4848
}
4949

50-
// This Listener Adds a cooldown between using Ender Pearls
50+
/*
51+
This Listener Adds a cooldown between using Ender Pearls
52+
*/
5153

5254
@EventHandler(ignoreCancelled = true)
5355
public void onLaunch(ProjectileLaunchEvent e) {

src/main/java/me/nik/combatplus/listeners/FishingRodKnockback.java

Lines changed: 16 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -2,72 +2,68 @@
22

33
import me.nik.combatplus.files.Config;
44
import me.nik.combatplus.utils.Messenger;
5+
import me.nik.combatplus.utils.MiscUtils;
56
import org.bukkit.Bukkit;
67
import org.bukkit.GameMode;
7-
import org.bukkit.Location;
8-
import org.bukkit.World;
98
import org.bukkit.entity.Entity;
109
import org.bukkit.entity.EntityType;
1110
import org.bukkit.entity.FishHook;
1211
import org.bukkit.entity.LivingEntity;
1312
import org.bukkit.entity.Player;
1413
import org.bukkit.event.EventHandler;
15-
import org.bukkit.event.EventPriority;
1614
import org.bukkit.event.Listener;
1715
import org.bukkit.event.entity.EntityDamageByEntityEvent;
1816
import org.bukkit.event.entity.EntityDamageEvent;
1917
import org.bukkit.event.entity.ProjectileHitEvent;
2018
import org.bukkit.event.player.PlayerFishEvent;
21-
import org.bukkit.util.Vector;
2219

2320
public class FishingRodKnockback implements Listener {
2421

2522
private final double fishingRodDamage = Config.get().getDouble("advanced.settings.knockback.fishing_rod.damage");
2623
private final boolean cancelDragging = Config.get().getBoolean("knockback.fishing_rod.cancel_dragging");
2724

28-
@EventHandler(priority = EventPriority.HIGHEST)
29-
public void onRodLand(ProjectileHitEvent e) {
25+
/*
26+
Bring back old fishing rod behavior
27+
*/
3028

29+
@EventHandler
30+
public void onRodLand(ProjectileHitEvent e) {
3131
Entity rodHook = e.getEntity();
32-
World world = rodHook.getWorld();
3332
if (e.getEntityType() != EntityType.FISHING_HOOK) return;
34-
3533
Entity target;
36-
37-
try {
38-
target = e.getHitEntity();
39-
} catch (NoSuchMethodError error) {
40-
target = world.getNearbyEntities(rodHook.getLocation(), 0.25, 0.25, 0.25).stream().filter(entity -> entity instanceof Player).findFirst().orElse(null);
41-
}
34+
target = e.getHitEntity();
4235

4336
if (target == null) return;
4437
if (!(target instanceof LivingEntity)) return;
4538

39+
/*
40+
return on citizen NPCS
41+
*/
4642
if (target.hasMetadata("NPC")) return;
4743

4844
FishHook hook = (FishHook) rodHook;
49-
Player rodder = (Player) hook.getShooter();
45+
Player holder = (Player) hook.getShooter();
5046

5147
if (target instanceof Player) {
5248
Player player = (Player) target;
5349

54-
if (player.equals(rodder)) return;
50+
if (player.equals(holder)) return;
5551

5652
if (player.getGameMode() == GameMode.CREATIVE) return;
5753
}
5854
LivingEntity livingEntity = (LivingEntity) target;
5955

6056
if (livingEntity.getNoDamageTicks() > livingEntity.getMaximumNoDamageTicks() / 2f) return;
61-
EntityDamageEvent event = customEvent(rodder, target, fishingRodDamage);
57+
EntityDamageEvent event = customEvent(holder, target, fishingRodDamage);
6258
Bukkit.getPluginManager().callEvent(event);
6359
if (event.isCancelled()) return;
6460

65-
livingEntity.setVelocity(calculateKnockbackVelocity(livingEntity.getVelocity(), livingEntity.getLocation(), hook.getLocation()));
61+
livingEntity.setVelocity(MiscUtils.calculateVelocity(livingEntity.getVelocity(), livingEntity.getLocation(), hook.getLocation()));
6662
livingEntity.damage(fishingRodDamage);
67-
Messenger.debug(rodder, "&3Fishing Rod Knockback &f&l>> &6Velocity: &a" + livingEntity.getVelocity().toString());
63+
Messenger.debug(holder, "&3Fishing Rod Knockback &f&l>> &6Velocity: &a" + livingEntity.getVelocity().toString());
6864
}
6965

70-
@EventHandler(priority = EventPriority.HIGHEST)
66+
@EventHandler
7167
public void onHook(PlayerFishEvent e) {
7268
if (!cancelDragging) return;
7369
if (e.getState() != PlayerFishEvent.State.CAUGHT_ENTITY) return;
@@ -76,34 +72,6 @@ public void onHook(PlayerFishEvent e) {
7672
Messenger.debug(e.getPlayer(), "&3Fishing Rod Knockback &f&l>> &6Cancelled Dragging: &atrue");
7773
}
7874

79-
private Vector calculateKnockbackVelocity(Vector currentVelocity, Location player, Location hook) {
80-
double xDist = hook.getX() - player.getX();
81-
double zDist = hook.getZ() - player.getZ();
82-
83-
while (xDist * xDist + zDist * zDist < 0.0001) {
84-
xDist = (Math.random() - Math.random()) * 0.01D;
85-
zDist = (Math.random() - Math.random()) * 0.01D;
86-
}
87-
88-
double distance = Math.sqrt(xDist * xDist + zDist * zDist);
89-
90-
double y = currentVelocity.getY() / 2;
91-
double x = currentVelocity.getX() / 2;
92-
double z = currentVelocity.getZ() / 2;
93-
94-
x -= xDist / distance * 0.4;
95-
96-
y += 0.4;
97-
98-
z -= zDist / distance * 0.4;
99-
100-
if (y >= 0.4) {
101-
y = 0.4;
102-
}
103-
104-
return new Vector(x, y, z);
105-
}
106-
10775
private EntityDamageEvent customEvent(Player rodder, Entity entity, double damage) {
10876
return new EntityDamageByEntityEvent(rodder, entity, EntityDamageEvent.DamageCause.PROJECTILE, damage);
10977
}

src/main/java/me/nik/combatplus/listeners/GoldenApple.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ public void run() {
4646
}.runTaskLaterAsynchronously(plugin, cdtime * 20);
4747
}
4848

49-
// This Listener adds a cooldown between eating Golden Apples
49+
/*
50+
This Listener adds a cooldown between eating Golden Apples
51+
*/
5052

5153
@EventHandler(ignoreCancelled = true)
5254
public void onEatGoldenApple(PlayerItemConsumeEvent e) {

src/main/java/me/nik/combatplus/listeners/PlayerRegen.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import me.nik.combatplus.CombatPlus;
44
import me.nik.combatplus.files.Config;
55
import me.nik.combatplus.utils.Messenger;
6+
import me.nik.combatplus.utils.MiscUtils;
67
import me.nik.combatplus.utils.WorldUtils;
78
import org.bukkit.attribute.Attribute;
89
import org.bukkit.entity.EntityType;
@@ -38,9 +39,8 @@ public PlayerRegen(CombatPlus plugin) {
3839

3940
@EventHandler(priority = EventPriority.HIGHEST)
4041
public void onRegen(EntityRegainHealthEvent e) {
41-
if (e.getEntityType() != EntityType.PLAYER || e.getRegainReason() != EntityRegainHealthEvent.RegainReason.SATIATED) {
42+
if (e.getEntityType() != EntityType.PLAYER || e.getRegainReason() != EntityRegainHealthEvent.RegainReason.SATIATED)
4243
return;
43-
}
4444
final Player p = (Player) e.getEntity();
4545
if (worldUtils.combatDisabledWorlds(p)) return;
4646
final UUID playerID = p.getUniqueId();
@@ -52,7 +52,7 @@ public void onRegen(EntityRegainHealthEvent e) {
5252
if (currentTime - lastHealTime < oldRegenFrequency) return;
5353
final double maxHealth = p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue();
5454
if (playerHealth < maxHealth) {
55-
p.setHealth(clamp(playerHealth + oldRegenAmount, maxHealth));
55+
p.setHealth(MiscUtils.clamp(playerHealth + oldRegenAmount, maxHealth));
5656
healTimes.put(playerID, currentTime);
5757
}
5858
final float previousExhaustion = p.getExhaustion();
@@ -67,18 +67,6 @@ public void run() {
6767
}.runTaskLater(plugin, 1);
6868
}
6969

70-
private double clamp(double value, double max) {
71-
double realMin = Math.min(0.0, max);
72-
double realMax = Math.max(0.0, max);
73-
if (value < realMin) {
74-
value = realMin;
75-
}
76-
if (value > realMax) {
77-
value = realMax;
78-
}
79-
return value;
80-
}
81-
8270
@EventHandler
8371
public void cleanHashMap(PlayerQuitEvent e) {
8472
UUID pUuid = e.getPlayer().getUniqueId();

src/main/java/me/nik/combatplus/listeners/UpdateReminder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void onJoin(PlayerJoinEvent e) {
2222
new BukkitRunnable() {
2323
@Override
2424
public void run() {
25-
e.getPlayer().sendMessage(Messenger.message("update_reminder").replaceAll("%current%", plugin.getDescription().getVersion()).replaceAll("%new%", UpdateChecker.VERSION));
25+
e.getPlayer().sendMessage(Messenger.message("update_reminder").replaceAll("%current%", plugin.getDescription().getVersion()).replaceAll("%new%", UpdateChecker.newVersion));
2626
}
2727
}.runTaskLaterAsynchronously(plugin, 40);
2828
}
Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
package me.nik.combatplus.listeners.fixes;
22

33
import me.nik.combatplus.utils.Messenger;
4+
import me.nik.combatplus.utils.MiscUtils;
45
import org.bukkit.Location;
5-
import org.bukkit.Material;
6-
import org.bukkit.block.Block;
76
import org.bukkit.entity.Player;
87
import org.bukkit.event.EventHandler;
98
import org.bukkit.event.Listener;
109
import org.bukkit.event.entity.EntityDamageByEntityEvent;
1110
import org.bukkit.event.entity.EntityDamageEvent;
12-
import org.bukkit.potion.PotionEffectType;
1311

1412
public class Criticals implements Listener {
1513

@@ -22,34 +20,11 @@ public void onCritical(EntityDamageByEntityEvent e) {
2220
if (!(e.getDamager() instanceof Player) || e.getCause() != EntityDamageEvent.DamageCause.ENTITY_ATTACK) return;
2321
Player p = (Player) e.getDamager();
2422
Location pLoc = p.getLocation();
25-
if (isCritical(p)) {
23+
if (MiscUtils.isCritical(p)) {
2624
if ((pLoc.getY() % 1.0 == 0 || pLoc.getY() % 0.5 == 0) && pLoc.clone().subtract(0, 1.0, 0).getBlock().getType().isSolid()) {
2725
e.setCancelled(true);
2826
Messenger.debug(p, "&3Criticals &f&l>> &6Canceled: &a" + e.isCancelled() + " &6Invalid: &atrue");
2927
}
3028
}
3129
}
32-
33-
private boolean isCritical(Player p) {
34-
return p.getFallDistance() > 0.0f
35-
&& !p.isOnGround()
36-
&& !p.isInsideVehicle()
37-
&& !p.hasPotionEffect(PotionEffectType.BLINDNESS)
38-
&& !isAtWater(p.getLocation())
39-
&& p.getEyeLocation().getBlock().getType() != Material.LADDER;
40-
}
41-
42-
private boolean isAtWater(Location loc, int blocks) {
43-
for (int i = loc.getBlockY(); i > loc.getBlockY() - blocks; i--) {
44-
Block block = (new Location(loc.getWorld(), loc.getBlockX(), i, loc.getBlockZ())).getBlock();
45-
if (block.getType() != Material.AIR) {
46-
return block.isLiquid();
47-
}
48-
}
49-
return false;
50-
}
51-
52-
private boolean isAtWater(Location loc) {
53-
return isAtWater(loc, 25);
54-
}
5530
}

src/main/java/me/nik/combatplus/listeners/fixes/Projectiles.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ This Module Makes Projectiles Go Straight (To where they're supposed to land)
1616
Removes Randomness
1717
*/
1818

19-
@EventHandler(ignoreCancelled = true)
19+
@EventHandler
2020
public void onProjectileShoot(ProjectileLaunchEvent e) {
2121
final Projectile projectile = e.getEntity();
2222
final ProjectileSource holder = projectile.getShooter();

0 commit comments

Comments
 (0)