From ef0b56eb2277a1ccf3d1e4e1bbc0a02633fc4940 Mon Sep 17 00:00:00 2001 From: J-VdS <38380578+J-VdS@users.noreply.github.com> Date: Tue, 3 Sep 2019 01:37:38 +0200 Subject: [PATCH] Extra events (#630) * eventype player join * playerjoin event * player leave * player leave event * typo * remove * leave fix --- .../src/io/anuke/mindustry/core/NetServer.java | 9 ++++++--- .../src/io/anuke/mindustry/game/EventType.java | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/core/src/io/anuke/mindustry/core/NetServer.java b/core/src/io/anuke/mindustry/core/NetServer.java index 59b5b57745..adc7d4ffcf 100644 --- a/core/src/io/anuke/mindustry/core/NetServer.java +++ b/core/src/io/anuke/mindustry/core/NetServer.java @@ -20,7 +20,7 @@ import io.anuke.mindustry.entities.traits.BuilderTrait.BuildRequest; import io.anuke.mindustry.entities.traits.Entity; import io.anuke.mindustry.entities.traits.SyncTrait; import io.anuke.mindustry.entities.type.Player; -import io.anuke.mindustry.game.EventType.WorldLoadEvent; +import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Version; import io.anuke.mindustry.gen.Call; @@ -74,7 +74,7 @@ public class NetServer implements ApplicationListener{ }); Net.handleServer(Disconnect.class, (id, packet) -> { - Player player = connections.get(id); + Player player = connections.get(id); if(player != null){ onDisconnect(player, packet.reason); } @@ -185,6 +185,8 @@ public class NetServer implements ApplicationListener{ sendWorldData(player, id); platform.updateRPC(); + + Events.fire(new PlayerJoin(player)); }); Net.handleServer(InvokePacket.class, (id, packet) -> { @@ -402,8 +404,9 @@ public class NetServer implements ApplicationListener{ } if(player.con.hasConnected){ + Events.fire(new PlayerLeave(player)); Call.sendMessage("[accent]" + player.name + "[accent] has disconnected."); - Call.onPlayerDisconnect(player.id); + Call.onPlayerDisconnect(player.id); } player.remove(); netServer.connections.remove(player.con.id); diff --git a/core/src/io/anuke/mindustry/game/EventType.java b/core/src/io/anuke/mindustry/game/EventType.java index 6d8b8a0b40..d1158e1265 100644 --- a/core/src/io/anuke/mindustry/game/EventType.java +++ b/core/src/io/anuke/mindustry/game/EventType.java @@ -5,6 +5,7 @@ import io.anuke.mindustry.entities.traits.BuilderTrait; import io.anuke.mindustry.entities.type.Unit; import io.anuke.mindustry.type.Zone; import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.entities.type.Player; public class EventType{ @@ -184,5 +185,22 @@ public class EventType{ public static class ResizeEvent{ } + + public static class PlayerJoin{ + public final Player player; + + public PlayerJoin(Player player){ + this.player = player; + } + } + + public static class PlayerLeave{ + public final Player player; + + public PlayerLeave(Player player){ + this.player = player; + } + } + }