From ea9ebe26a39e1d911a5d963064519a2d814d16a9 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 25 Aug 2020 14:38:07 -0400 Subject: [PATCH] Fixed air units spawning on wrong end of map / Fixed kick message spam --- core/src/mindustry/ai/WaveSpawner.java | 2 +- core/src/mindustry/net/NetConnection.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/ai/WaveSpawner.java b/core/src/mindustry/ai/WaveSpawner.java index 09060fd33d..4ac1b4d8f8 100644 --- a/core/src/mindustry/ai/WaveSpawner.java +++ b/core/src/mindustry/ai/WaveSpawner.java @@ -99,7 +99,7 @@ public class WaveSpawner{ private void eachFlyerSpawn(Floatc2 cons){ for(Tile tile : spawns){ - float angle = Angles.angle(tile.x, tile.y, world.width() / 2, world.height() / 2); + float angle = Angles.angle(world.width() / 2, world.height() / 2, tile.x, tile.y); float trns = Math.max(world.width(), world.height()) * Mathf.sqrt2 * tilesize; float spawnX = Mathf.clamp(world.width() * tilesize / 2f + Angles.trnsx(angle, trns), -margin, world.width() * tilesize + margin); diff --git a/core/src/mindustry/net/NetConnection.java b/core/src/mindustry/net/NetConnection.java index 2cad7d40e8..e11d8f2d00 100644 --- a/core/src/mindustry/net/NetConnection.java +++ b/core/src/mindustry/net/NetConnection.java @@ -21,6 +21,7 @@ public abstract class NetConnection{ public @Nullable Player player; public @Nullable Unitc lastUnit; public Vec2 lastPosition = new Vec2(); + public boolean kicked = false; /** ID of last received client snapshot. */ public int lastReceivedClientSnapshot = -1; @@ -38,6 +39,8 @@ public abstract class NetConnection{ /** Kick with a special, localized reason. Use this if possible. */ public void kick(KickReason reason){ + if(kicked) return; + Log.info("Kicking connection @; Reason: @", address, reason.name()); if((reason == KickReason.kick || reason == KickReason.banned || reason == KickReason.vote)){ @@ -51,6 +54,7 @@ public abstract class NetConnection{ Time.runTask(2f, this::close); netServer.admins.save(); + kicked = true; } /** Kick with an arbitrary reason. */ @@ -60,6 +64,8 @@ public abstract class NetConnection{ /** Kick with an arbitrary reason, and a kick duration in milliseconds. */ public void kick(String reason, int kickDuration){ + if(kicked) return; + Log.info("Kicking connection @; Reason: @", address, reason.replace("\n", " ")); PlayerInfo info = netServer.admins.getInfo(uuid); @@ -71,6 +77,7 @@ public abstract class NetConnection{ Time.runTask(2f, this::close); netServer.admins.save(); + kicked = true; } public boolean isConnected(){