From 17267aa9a40dee58eeeb3628680d4022fb4f49c4 Mon Sep 17 00:00:00 2001 From: Alfie Cleveland Date: Sat, 27 Oct 2018 21:07:42 -0500 Subject: [PATCH] t diff --git a/src/main/java/net/minecraft/server/EnchantmentManager.java b/src/main/java/net/minecraft/server/EnchantmentManager.java index deda4728..83154f29 100644 --- a/src/main/java/net/minecraft/server/EnchantmentManager.java +++ b/src/main/java/net/minecraft/server/EnchantmentManager.java @@ -137,7 +137,7 @@ public class EnchantmentManager { b.a = 25; } - return (b.a + 1 >> 1) + random.nextInt((b.a >> 1) + 1); + return b.a; } public static float a(EntityLiving entityliving, EntityLiving entityliving1) { diff --git a/src/main/java/net/minecraft/server/EntityEnderPearl.java b/src/main/java/net/minecraft/server/EntityEnderPearl.java index 8da37d33..fbb051b4 100644 --- a/src/main/java/net/minecraft/server/EntityEnderPearl.java +++ b/src/main/java/net/minecraft/server/EntityEnderPearl.java @@ -1,24 +1,27 @@ package net.minecraft.server; -import java.util.Set; - -// CraftBukkit start +import com.google.common.collect.Sets; import org.bukkit.Bukkit; -import org.bukkit.Location; import org.bukkit.craftbukkit.event.CraftEventFactory; import org.bukkit.event.player.PlayerPearlRefundEvent; import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.material.Gate; +import org.bukkit.util.BlockIterator; +import org.bukkit.util.Vector; +import org.spigotmc.SpigotConfig; -import com.google.common.collect.Sets; +import java.util.Set; + +// CraftBukkit start public class EntityEnderPearl extends EntityProjectile { - private Location lastValidTeleport = null; private Item toRefundPearl = null; + private EntityLiving c; - private static Set PROHIBITED_PEARL_BLOCKS = Sets.newHashSet(Block.getById(85), + private static Set PROHIBITED_PEARL_BLOCKS = Sets.newHashSet(Block.getById(85), Block.getById(107) - ); + ); public EntityEnderPearl(World world) { super(world); @@ -27,23 +30,53 @@ public class EntityEnderPearl extends EntityProjectile { public EntityEnderPearl(World world, EntityLiving entityliving) { super(world, entityliving); + this.c = entityliving; this.loadChunks = world.paperSpigotConfig.loadUnloadedEnderPearls; // PaperSpigot } - // MineHQ start - public void h() { - AxisAlignedBB newBoundingBox = AxisAlignedBB.a(this.locX - 0.3D, this.locY - 0.05D, this.locZ - 0.3D, this.locX + 0.3D, this.locY + 0.5D, this.locZ + 0.3D); - - if (!this.world.boundingBoxContainsMaterials(this.boundingBox.grow(0.25D, 0D, 0.25D), PROHIBITED_PEARL_BLOCKS) && this.world.getCubes(this, newBoundingBox).isEmpty()) { - this.lastValidTeleport = getBukkitEntity().getLocation(); + protected void a(MovingObjectPosition movingobjectposition) { + if (SpigotConfig.pearlThroughGatesAndTripwire) { + Block block = this.world.getType(movingobjectposition.b, movingobjectposition.c, movingobjectposition.d); + + if (block == Blocks.TRIPWIRE) { + return; + } else if (block == Blocks.FENCE_GATE) { + BlockIterator bi = null; + + try { + Vector l = new Vector(this.locX, this.locY, this.locZ); + Vector l2 = new Vector(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + Vector dir = new Vector(l2.getX() - l.getX(), l2.getY() - l.getY(), l2.getZ() - l.getZ()).normalize(); + bi = new BlockIterator(this.world.getWorld(), l, dir, 0, 1); + } catch (IllegalStateException ex) { + // ignore + } + + if (bi != null) { + boolean open = true; + + while (bi.hasNext()) { + org.bukkit.block.Block b = bi.next(); + + if (b.getState().getData() instanceof Gate && !((Gate) b.getState().getData()).isOpen()) { + open = false; + break; + } + } + + if (open) { + return; + } + } + } } - super.h(); - } - // MineHQ start - protected void a(MovingObjectPosition movingobjectposition) { if (movingobjectposition.entity != null) { + if (movingobjectposition.entity == this.c) { + return; + } + movingobjectposition.entity.damageEntity(DamageSource.projectile(this, this.getShooter()), 0.0F); } @@ -62,31 +95,29 @@ public class EntityEnderPearl extends EntityProjectile { EntityPlayer entityplayer = (EntityPlayer) this.getShooter(); if (entityplayer.playerConnection.b().isConnected() && entityplayer.world == this.world) { // MineHQ - if (this.lastValidTeleport != null) { - // CraftBukkit start - Fire PlayerTeleportEvent - org.bukkit.craftbukkit.entity.CraftPlayer player = entityplayer.getBukkitEntity(); - org.bukkit.Location location = this.lastValidTeleport.clone(); // MineHQ - location.setPitch(player.getLocation().getPitch()); - location.setYaw(player.getLocation().getYaw()); - - PlayerTeleportEvent teleEvent = new PlayerTeleportEvent(player, player.getLocation(), location, PlayerTeleportEvent.TeleportCause.ENDER_PEARL); - Bukkit.getPluginManager().callEvent(teleEvent); - - if (!teleEvent.isCancelled() && !entityplayer.playerConnection.isDisconnected()) { - if (this.getShooter().am()) { - this.getShooter().mount((Entity) null); - } - - entityplayer.playerConnection.teleport(teleEvent.getTo()); - this.getShooter().fallDistance = 0.0F; - CraftEventFactory.entityDamage = this; - this.getShooter().damageEntity(DamageSource.FALL, 5.0F); - CraftEventFactory.entityDamage = null; + // CraftBukkit start - Fire PlayerTeleportEvent + org.bukkit.craftbukkit.entity.CraftPlayer player = entityplayer.getBukkitEntity(); + org.bukkit.Location location = this.getBukkitEntity().getLocation(); + location.setPitch(player.getLocation().getPitch()); + location.setYaw(player.getLocation().getYaw()); + + PlayerTeleportEvent teleEvent = new PlayerTeleportEvent(player, player.getLocation(), location, PlayerTeleportEvent.TeleportCause.ENDER_PEARL); + Bukkit.getPluginManager().callEvent(teleEvent); + + if (!teleEvent.isCancelled() && !entityplayer.playerConnection.isDisconnected()) { + if (this.getShooter().am()) { + this.getShooter().mount((Entity) null); } - // CraftBukkit end - } else { - Bukkit.getPluginManager().callEvent(new PlayerPearlRefundEvent(entityplayer.getBukkitEntity())); + + entityplayer.playerConnection.teleport(teleEvent.getTo()); + this.getShooter().fallDistance = 0.0F; + CraftEventFactory.entityDamage = this; + this.getShooter().damageEntity(DamageSource.FALL, 5.0F); + CraftEventFactory.entityDamage = null; } + // CraftBukkit end + } else { + Bukkit.getPluginManager().callEvent(new PlayerPearlRefundEvent(entityplayer.getBukkitEntity())); } } @@ -94,6 +125,17 @@ public class EntityEnderPearl extends EntityProjectile { } } + @Override + public void h() { + EntityLiving shooter = this.getShooter(); + + if (shooter != null && !shooter.isAlive()) { + this.die(); + } else { + super.h(); + } + } + public Item getToRefundPearl() { return this.toRefundPearl; } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java index df2333f1..5101d3a1 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -961,18 +961,25 @@ public abstract class EntityHuman extends EntityLiving implements ICommandListen boolean flag2 = entity.damageEntity(DamageSource.playerAttack(this), f); if (flag2) { - if (i > 0) { - if (SpigotConfig.alternateKnockback) { - entity.g((double) (-MathHelper.sin(this.yaw * 3.1415927F / 180.0F) * (float) i * 0.5F), 0.1D, (double) (MathHelper.cos(this.yaw * 3.1415927F / 180.0F) * (float) i * 0.5F)); - } else { - entity.g( - (double) (-MathHelper.sin(this.yaw * 3.1415927F / 180.0F) * (float) i * SpigotConfig.knockbackExtraHorizontal), - SpigotConfig.knockbackExtraVertical, - (double) (MathHelper.cos(this.yaw * 3.1415927F / 180.0F) * (float) i * SpigotConfig.knockbackExtraHorizontal)); + if (SpigotConfig.knockbackMode == SpigotConfig.MMC) { + if (this.isApplyingSprintKnockback()) { + entity.g(-MathHelper.sin(this.yaw * 3.1415927f / 180.0f) * i * 0.5f, 0.1, MathHelper.cos(this.yaw * 3.1415927f / 180.0f) * i * 0.5f); + this.setApplyingSprintKnockback(false); + } + } else { + if (i > 0) { + if (SpigotConfig.knockbackMode == SpigotConfig.KOHI) { + entity.g((double) (-MathHelper.sin(this.yaw * 3.1415927F / 180.0F) * (float) i * 0.5F), 0.1D, (double) (MathHelper.cos(this.yaw * 3.1415927F / 180.0F) * (float) i * 0.5F)); + } else { + entity.g( + (double) (-MathHelper.sin(this.yaw * 3.1415927F / 180.0F) * (float) i * SpigotConfig.knockbackExtraHorizontal), + SpigotConfig.knockbackExtraVertical, + (double) (MathHelper.cos(this.yaw * 3.1415927F / 180.0F) * (float) i * SpigotConfig.knockbackExtraHorizontal)); + } + this.motX *= 0.6D; + this.motZ *= 0.6D; + this.setSprinting(false); } - this.motX *= 0.6D; - this.motZ *= 0.6D; - this.setSprinting(false); } // Kohi start diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java index a642090a..4317cd3b 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -88,6 +88,7 @@ public abstract class EntityLiving extends Entity { // CraftBukkit start public int expToDrop; public int maxAirTicks = 300; + private boolean applyingSprintKnockback; ArrayList drops = null; // CraftBukkit end // Spigot start @@ -900,7 +901,7 @@ public abstract class EntityLiving extends Entity { if (this.random.nextDouble() >= this.getAttributeInstance(GenericAttributes.c).getValue()) { this.al = true; float f1 = MathHelper.sqrt(d0 * d0 + d1 * d1); - if (SpigotConfig.alternateKnockback) { + if (SpigotConfig.knockbackMode == SpigotConfig.KOHI) { double magnitude = f1; this.motX /= SpigotConfig.knockbackFriction; @@ -914,6 +915,28 @@ public abstract class EntityLiving extends Entity { if (this.motY > SpigotConfig.knockbackVerticalLimit) { this.motY = SpigotConfig.knockbackVerticalLimit; } + } else if (SpigotConfig.knockbackMode == SpigotConfig.MMC) { + if (this.random.nextDouble() >= this.getAttributeInstance(GenericAttributes.c).getValue()) { + this.al = true; + final float f2 = MathHelper.sqrt(d0 * d0 + d1 * d1); + float f3 = 0.4f; + float f4 = 0.4f; + final double knockbackReductionHorizontal = 1.0 - SpigotConfig.knockbackHorizontal; + final double knockbackReductionVertical = 1.0 - SpigotConfig.knockbackVertical; + final double frictionHorizontal = 2.0 - knockbackReductionHorizontal; + final double frictionVertical = 2.0 - knockbackReductionVertical - 0.25; + f3 *= (float)(1.0 - knockbackReductionHorizontal); + f4 *= (float)(1.0 - knockbackReductionVertical); + this.motX /= frictionHorizontal; + this.motY /= frictionVertical; + this.motZ /= frictionHorizontal; + this.motX -= d0 / f2 * f3; + this.motY += f4; + this.motZ -= d1 / f2 * f3; + if (this.motY > 0.4000000059604645) { + this.motY = 0.4000000059604645; + } + } } else { float f2 = 0.4F; @@ -1260,6 +1283,7 @@ public abstract class EntityLiving extends Entity { public void setSprinting(boolean flag) { super.setSprinting(flag); + this.setApplyingSprintKnockback(flag); AttributeInstance attributeinstance = this.getAttributeInstance(GenericAttributes.d); if (attributeinstance.a(b) != null) { @@ -1271,6 +1295,15 @@ public abstract class EntityLiving extends Entity { } } + public void setApplyingSprintKnockback(final boolean flag) { + this.applyingSprintKnockback = flag; + } + + public boolean isApplyingSprintKnockback() { + return this.applyingSprintKnockback; + } + + public abstract ItemStack[] getEquipment(); protected float bf() { diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java index c30ffec6..2397a59e 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -25,11 +25,13 @@ import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.craftbukkit.entity.CraftPlayer; import org.bukkit.craftbukkit.event.CraftEventFactory; import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.bukkit.craftbukkit.util.CraftPotionUtils; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; // CraftBukkit end +import org.bukkit.potion.PotionEffect; import org.spigotmc.ProtocolData; // Spigot - protocol patch import org.spigotmc.SpigotConfig; @@ -1053,7 +1055,9 @@ public class EntityPlayer extends EntityHuman implements ICrafting { protected void a(MobEffect mobeffect) { super.a(mobeffect); - this.playerConnection.sendPacket(new PacketPlayOutEntityEffect(this.getId(), mobeffect)); + if (this.playerConnection != null) { + this.playerConnection.sendPacket(new PacketPlayOutEntityEffect(this.getId(), mobeffect)); + } } protected void a(MobEffect mobeffect, boolean flag) { diff --git a/src/main/java/net/minecraft/server/EntityProjectile.java b/src/main/java/net/minecraft/server/EntityProjectile.java index 5287cdab..dcc55ed6 100644 --- a/src/main/java/net/minecraft/server/EntityProjectile.java +++ b/src/main/java/net/minecraft/server/EntityProjectile.java @@ -115,38 +115,6 @@ public abstract class EntityProjectile extends Entity implements IProjectile { Vec3D vec3d1 = Vec3D.a(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); MovingObjectPosition movingobjectposition = this.world.a(vec3d, vec3d1); - // Riot start - pearling through open fence gates & string - if (SpigotConfig.pearlThroughGatesAndTripwire && this instanceof EntityEnderPearl && movingobjectposition != null && movingobjectposition.type == EnumMovingObjectType.BLOCK) { - - int fromX = MathHelper.floor(this.locX); - int fromY = MathHelper.floor(this.locY); - int fromZ = MathHelper.floor(this.locZ); - - int toX = MathHelper.floor(this.locX + this.motX); - int toY = MathHelper.floor(this.locY + this.motY); - int toZ = MathHelper.floor(this.locZ + this.motZ); - - int collisionX = movingobjectposition.b; - int collisionY = movingobjectposition.c; - int collisionZ = movingobjectposition.d; - - boolean isFromClear = isClear(fromX, fromY, fromZ); - boolean isToClear = isClear(toX, toY, toZ); - boolean isCollisionClear = isClear(collisionX, collisionY, collisionZ); - - if (isFromClear && isCollisionClear && isToClear) { - movingobjectposition = null; - } else { - Bukkit.getLogger().info("isFromClear:" + isFromClear); - Bukkit.getLogger().info("isCollisionClear:" + isCollisionClear); - Bukkit.getLogger().info("isToClear:" + isToClear); - Bukkit.getLogger().info(String.format("from: %d,%d,%d", fromX, fromY, fromZ)); - Bukkit.getLogger().info(String.format("collision: %d,%d,%d", collisionX, collisionY, collisionZ)); - Bukkit.getLogger().info(String.format("to: %d,%d,%d", toX, toY, toZ)); - } - } - // Riot end - vec3d = Vec3D.a(this.locX, this.locY, this.locZ); vec3d1 = Vec3D.a(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); if (movingobjectposition != null) { @@ -289,10 +257,4 @@ public abstract class EntityProjectile extends Entity implements IProjectile { return this.shooter; } - - private boolean isClear(int x, int y, int z) { - Block block = this.world.getType(x, y, z); - - return block == null || block == Blocks.AIR || (block == Blocks.FENCE_GATE && (this.world.getData(x, y, z) & 0x4) != 0x0); - } } diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java index a7c4b25c..05b5f4c2 100644 --- a/src/main/java/net/minecraft/server/EntityTracker.java +++ b/src/main/java/net/minecraft/server/EntityTracker.java @@ -60,7 +60,7 @@ public class EntityTracker { } else if (entity instanceof EntitySnowball) { this.addEntity(entity, 64, 10, true); } else if (entity instanceof EntityEnderPearl) { - this.addEntity(entity, 64, 10, true); + this.addEntity(entity, 64, 2, true); } else if (entity instanceof EntityEnderSignal) { this.addEntity(entity, 64, 4, true); } else if (entity instanceof EntityEgg) { diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java index 143e41b2..ef77a210 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -461,7 +461,8 @@ public class EntityTrackerEntry { entityplayer.playerConnection.sendPacket(packet); if (trackerInstanceOf && SpigotConfig.onlyCustomTab) entityplayer.playerConnection.sendPacket(PacketPlayOutPlayerInfo.removePlayer((EntityPlayer) tracker)); } else { - if (tracker instanceof EntityPlayer && !SpigotConfig.onlyCustomTab) { entityplayer.playerConnection.sendPacket(PacketPlayOutPlayerInfo.addPlayer((EntityPlayer) tracker)); + if (tracker instanceof EntityPlayer && !SpigotConfig.onlyCustomTab) { + entityplayer.playerConnection.sendPacket(PacketPlayOutPlayerInfo.addPlayer((EntityPlayer) tracker)); } entityplayer.playerConnection.sendPacket(packet); diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java index f6150520..ac33bb38 100644 --- a/src/main/java/net/minecraft/server/LoginListener.java +++ b/src/main/java/net/minecraft/server/LoginListener.java @@ -155,7 +155,7 @@ public class LoginListener implements PacketLoginInListener { } public String getName() { - return this.i != null ? this.i.toString() + " (" + this.networkManager.getSocketAddress().toString() + ")" : String.valueOf(this.networkManager.getSocketAddress()); + return this.i != null ? "[" + this.i.getName() + ", " + this.i.getId() + "]" + " (" + this.networkManager.getSocketAddress().toString() + ")" : String.valueOf(this.networkManager.getSocketAddress()); } public void a(EnumProtocol enumprotocol, EnumProtocol enumprotocol1) { diff --git a/src/main/java/net/minecraft/server/NextTickListEntry.java b/src/main/java/net/minecraft/server/NextTickListEntry.java index cbb35765..f63c095a 100644 --- a/src/main/java/net/minecraft/server/NextTickListEntry.java +++ b/src/main/java/net/minecraft/server/NextTickListEntry.java @@ -30,7 +30,7 @@ public class NextTickListEntry implements Comparable { } public int hashCode() { - return (this.a * 1024 * 1024 + this.c * 1024 + this.b) * 256; + return (c & 0xff) | ((a & 0x7fff) << 8) | ((b & 0x7fff) << 24) | ((a < 0) ? 0x0080000000 : 0) | ((b < 0) ? 0x0000008000 : 0); } public NextTickListEntry a(long i) { diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java index fc0507d6..fd9e344c 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -344,7 +344,7 @@ public abstract class PlayerList { } // CraftBukkit end - if (!SpigotConfig.playerListPackets) return; // MineHQ + if (SpigotConfig.onlyCustomTab) return; // MineHQ // CraftBukkit start - sendAll above replaced with this loop PacketPlayOutPlayerInfo packet = PacketPlayOutPlayerInfo.addPlayer( entityplayer ); // Spigot - protocol patch diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java index 6de5a6b6..da78af52 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -641,7 +641,14 @@ public class WorldServer extends World { } } + private static int tookTooLongs = 0; + public List a(Chunk chunk, boolean flag) { + + if (Bukkit.getPluginManager().getPlugin("UHC") != null) { + return null; + } + ArrayList arraylist = null; ChunkCoordIntPair chunkcoordintpair = chunk.l(); int i = (chunkcoordintpair.x << 4) - 2; @@ -652,13 +659,22 @@ public class WorldServer extends World { for (int i1 = 0; i1 < 2; ++i1) { Iterator iterator; + int size; + String ita; if (i1 == 0) { iterator = this.N.iterator(); + size = this.N.size(); + ita = "N"; } else { iterator = this.V.iterator(); + size = this.V.size(); + ita = "V"; } - while (iterator.hasNext()) { + long started = System.currentTimeMillis(); + + + while (iterator.hasNext() && (System.currentTimeMillis() - started < 500) && tookTooLongs < 30) { NextTickListEntry nextticklistentry = (NextTickListEntry) iterator.next(); if (nextticklistentry.a >= i && nextticklistentry.a < j && nextticklistentry.c >= k && nextticklistentry.c < l) { @@ -673,6 +689,13 @@ public class WorldServer extends World { arraylist.add(nextticklistentry); } } + + if (1000 <= System.currentTimeMillis() - started) { + Bukkit.getLogger().info("Saving took too long :("); + Bukkit.getLogger().info("Iterator size: " + size + ". Iterator: " + ita); + Bukkit.getLogger().info("Removing from iterator? " + flag); + tookTooLongs++; + } } return arraylist; diff --git a/src/main/java/org/bukkit/craftbukkit/util/HashTreeSet.java b/src/main/java/org/bukkit/craftbukkit/util/HashTreeSet.java index 80a5c29f..e690831d 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/HashTreeSet.java +++ b/src/main/java/org/bukkit/craftbukkit/util/HashTreeSet.java @@ -1,5 +1,7 @@ package org.bukkit.craftbukkit.util; +import org.bukkit.Bukkit; + import java.util.Collection; import java.util.HashSet; import java.util.Iterator; @@ -44,6 +46,9 @@ public class HashTreeSet implements Set { @Override public V next() { + if (!Bukkit.isPrimaryThread()) { + throw new IllegalStateException("Async access of HTS iterator"); + } return last = it.next(); } @@ -71,12 +76,19 @@ public class HashTreeSet implements Set { @Override public boolean add(V e) { + if (!Bukkit.isPrimaryThread()) { + throw new IllegalStateException("Async access of HTS add"); + } + hash.add(e); return tree.add(e); } @Override public boolean remove(Object o) { + if (!Bukkit.isPrimaryThread()) { + throw new IllegalStateException("Async access of HTS remove"); + } hash.remove(o); return tree.remove(o); } diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java index f7678418..b420ec14 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java @@ -532,8 +532,11 @@ public class SpigotConfig public static boolean onlyCustomTab; private static void packets() { onlyCustomTab = getBoolean("settings.only-custom-tab", false); - playerListPackets = !onlyCustomTab && !getBoolean("settings.disable.player-list-packets", false); - updatePingOnTablist = !onlyCustomTab && !getBoolean("settings.disable.ping-update-packets", false); + + if (!onlyCustomTab) { + playerListPackets = !getBoolean("settings.disable.player-list-packets", false); + updatePingOnTablist = getBoolean("settings.disable.ping-update-packets", false); + } } // MineHQ end @@ -542,7 +545,13 @@ public class SpigotConfig reduceArmorDamage = getBoolean("settings.reduce-armor-damage", false); } - public static boolean alternateKnockback; + // Kohi = 0, MineHQ = 1, MMC = 2 + + public static int KOHI = 0; + public static int MINEHQ = 1; + public static int MMC = 2; + + public static int knockbackMode = 0; public static double knockbackFriction = 2.0D; public static double knockbackHorizontal = 0.35D; public static double knockbackVertical = 0.35D; @@ -550,7 +559,7 @@ public class SpigotConfig public static double knockbackExtraHorizontal = 0.425D; public static double knockbackExtraVertical = 0.085D; private static void knockback() { - alternateKnockback = getBoolean("settings.alternate-knockback", false); + knockbackMode = getInt("settings.knockback-mode", 0); } public static boolean pearlThroughGatesAndTripwire = false; -- 2.17.2 (Apple Git-113)