diff --git a/core/src/io/anuke/mindustry/core/NetServer.java b/core/src/io/anuke/mindustry/core/NetServer.java index de84a6fd25..ce80e1e2c0 100644 --- a/core/src/io/anuke/mindustry/core/NetServer.java +++ b/core/src/io/anuke/mindustry/core/NetServer.java @@ -79,6 +79,11 @@ public class NetServer implements ApplicationListener{ con.hasBegunConnecting = true; con.mobile = packet.mobile; + if(packet.uuid == null || packet.usid == null){ + con.kick(KickReason.idInUse); + return; + } + if(admins.isIDBanned(uuid)){ con.kick(KickReason.banned); return; @@ -124,7 +129,7 @@ public class NetServer implements ApplicationListener{ return; } - if(player.uuid.equals(packet.uuid) || player.usid.equals(packet.usid)){ + if(player.uuid != null && player.usid != null && (player.uuid.equals(packet.uuid) || player.usid.equals(packet.usid))){ con.kick(KickReason.idInUse); return; } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java index d41b392a3a..782d94fdda 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java @@ -252,16 +252,6 @@ public class ItemBridge extends Block{ int rel2 = tile.relativeTo(source.x, source.y); if(rel == rel2) return false; - - - IntSetIterator it = entity.incoming.iterator(); - - while(it.hasNext){ - int v = it.next(); - if(tile.absoluteRelativeTo(Pos.x(v), Pos.y(v)) == rel2){ - return false; - } - } }else{ return source.block() instanceof ItemBridge && source.entity().link == tile.pos() && tile.entity.items.total() < itemCapacity; } diff --git a/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java b/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java index 317158d858..4e5757c859 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java @@ -52,6 +52,19 @@ public class CommandCenter extends Block{ } } + @Override + public void removed(Tile tile){ + super.removed(tile); + + ObjectSet set = indexer.getAllied(tile.getTeam(), BlockFlag.comandCenter); + + if(set.size == 1){ + for(BaseUnit unit : unitGroups[tile.getTeam().ordinal()].all()){ + unit.onCommand(UnitCommand.all[0]); + } + } + } + @Override public void load(){ super.load();