From 038994a95f1d36c4482d0e72a67aea693295c973 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 3 Jun 2023 11:47:19 -0400 Subject: [PATCH] Fixed #8667 --- core/src/mindustry/core/NetServer.java | 2 +- core/src/mindustry/editor/DrawOperation.java | 4 +++- core/src/mindustry/editor/EditorTool.java | 2 ++ core/src/mindustry/mod/Mods.java | 10 ++++++---- core/src/mindustry/net/NetConnection.java | 5 +++++ 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index f3bcb26310..50fb7193df 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -138,7 +138,7 @@ public class NetServer implements ApplicationListener{ String uuid = packet.uuid; - if(admins.isIPBanned(con.address) || admins.isSubnetBanned(con.address) || con.kicked) return; + if(admins.isIPBanned(con.address) || admins.isSubnetBanned(con.address) || con.kicked || !con.isConnected()) return; if(con.hasBegunConnecting){ con.kick(KickReason.idInUse); diff --git a/core/src/mindustry/editor/DrawOperation.java b/core/src/mindustry/editor/DrawOperation.java index 8681c679ff..a49b09525e 100755 --- a/core/src/mindustry/editor/DrawOperation.java +++ b/core/src/mindustry/editor/DrawOperation.java @@ -56,7 +56,9 @@ public class DrawOperation{ void setTile(Tile tile, byte type, short to){ editor.load(() -> { if(type == OpType.floor.ordinal()){ - tile.setFloor((Floor)content.block(to)); + if(content.block(to) instanceof Floor floor){ + tile.setFloor(floor); + } }else if(type == OpType.block.ordinal()){ tile.getLinkedTiles(t -> editor.renderer.updatePoint(t.x, t.y)); diff --git a/core/src/mindustry/editor/EditorTool.java b/core/src/mindustry/editor/EditorTool.java index aa26a7b10f..d8e80d5340 100644 --- a/core/src/mindustry/editor/EditorTool.java +++ b/core/src/mindustry/editor/EditorTool.java @@ -104,6 +104,8 @@ public enum EditorTool{ if(!Structs.inBounds(x, y, editor.width(), editor.height())) return; Tile tile = editor.tile(x, y); + if(tile == null) return; + if(editor.drawBlock.isMultiblock()){ //don't fill multiblocks, thanks pencil.touched(x, y); diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index 00b3bc79fa..601ad1f41a 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -195,10 +195,12 @@ public class Mods implements Loadable{ float textureScale = mod.meta.texturescale; for(Fi file : sprites){ - String name = file.nameWithoutExtension(); + String + baseName = file.nameWithoutExtension(), + regionName = baseName.contains(".") ? baseName.substring(0, baseName.indexOf(".")) : baseName; - if(!prefix && !Core.atlas.has(name)){ - Log.warn("Sprite '@' in mod '@' attempts to override a non-existent sprite. Ignoring.", name, mod.name); + if(!prefix && !Core.atlas.has(regionName)){ + Log.warn("Sprite '@' in mod '@' attempts to override a non-existent sprite. Ignoring.", regionName, mod.name); continue; //(horrible code below) @@ -215,7 +217,7 @@ public class Mods implements Loadable{ } //this returns a *runnable* which actually packs the resulting pixmap; this has to be done synchronously outside the method return () -> { - String fullName = (prefix ? mod.name + "-" : "") + name; + String fullName = (prefix ? mod.name + "-" : "") + baseName; packer.add(getPage(file), fullName, new PixmapRegion(pix)); if(textureScale != 1.0f){ textureResize.put(fullName, textureScale); diff --git a/core/src/mindustry/net/NetConnection.java b/core/src/mindustry/net/NetConnection.java index 9825bc0de4..a8d27786ed 100644 --- a/core/src/mindustry/net/NetConnection.java +++ b/core/src/mindustry/net/NetConnection.java @@ -41,6 +41,11 @@ public abstract class NetConnection{ this.address = address; } + /** Kick with the standard kick reason. */ + public void kick(){ + kick(KickReason.kick); + } + /** Kick with a special, localized reason. Use this if possible. */ public void kick(KickReason reason){ kick(reason, (reason == KickReason.kick || reason == KickReason.banned || reason == KickReason.vote) ? 30 * 1000 : 0);