From 9a6489bf56791918a1ca43de402fc16a1523a7db Mon Sep 17 00:00:00 2001 From: micle Date: Thu, 3 Jun 2021 15:28:05 +0100 Subject: [PATCH] Added ProtectedPlayer.java for storing data on protected players. Created an event for players joining and adding the joined player to a list of protected players. --- .../loginprotection/LoginProtection.java | 5 +++ .../loginprotection/data/ProtectedPlayer.java | 35 +++++++++++++++++++ .../events/OnEntityJoinEventHandler.java | 18 ++++++++++ .../loginprotection/setup/Registration.java | 4 +++ 4 files changed, 62 insertions(+) create mode 100644 src/main/java/com/micle/loginprotection/data/ProtectedPlayer.java create mode 100644 src/main/java/com/micle/loginprotection/events/OnEntityJoinEventHandler.java diff --git a/src/main/java/com/micle/loginprotection/LoginProtection.java b/src/main/java/com/micle/loginprotection/LoginProtection.java index 74750e5..a7af616 100644 --- a/src/main/java/com/micle/loginprotection/LoginProtection.java +++ b/src/main/java/com/micle/loginprotection/LoginProtection.java @@ -1,12 +1,17 @@ package com.micle.loginprotection; +import com.micle.loginprotection.data.ProtectedPlayer; import com.micle.loginprotection.setup.Registration; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; +import java.util.ArrayList; +import java.util.List; + @Mod(LoginProtection.MOD_ID) public class LoginProtection { public static final String MOD_ID = "loginprotection"; + public static List protected_players = new ArrayList<>(); public LoginProtection() { Registration.register(); diff --git a/src/main/java/com/micle/loginprotection/data/ProtectedPlayer.java b/src/main/java/com/micle/loginprotection/data/ProtectedPlayer.java new file mode 100644 index 0000000..aac9a56 --- /dev/null +++ b/src/main/java/com/micle/loginprotection/data/ProtectedPlayer.java @@ -0,0 +1,35 @@ +package com.micle.loginprotection.data; + +import java.util.UUID; + +public class ProtectedPlayer { + private final UUID player_uuid; + private int grace_period; + private boolean is_loading; + + public ProtectedPlayer(UUID player_uuid) { + this.player_uuid = player_uuid; + this.grace_period = 200; + this.is_loading = true; + } + + public UUID getPlayerUUID() { + return this.player_uuid; + } + + public int getGracePeriod() { + return this.grace_period; + } + + public void setGracePeriod(int new_grace_period) { + this.grace_period = new_grace_period; + } + + public boolean isLoading() { + return this.is_loading; + } + + public void setLoading(boolean new_loading) { + this.is_loading = new_loading; + } +} diff --git a/src/main/java/com/micle/loginprotection/events/OnEntityJoinEventHandler.java b/src/main/java/com/micle/loginprotection/events/OnEntityJoinEventHandler.java new file mode 100644 index 0000000..b9cdd38 --- /dev/null +++ b/src/main/java/com/micle/loginprotection/events/OnEntityJoinEventHandler.java @@ -0,0 +1,18 @@ +package com.micle.loginprotection.events; + +import com.micle.loginprotection.LoginProtection; +import com.micle.loginprotection.data.ProtectedPlayer; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; + +public class OnEntityJoinEventHandler { + @SubscribeEvent + public void EntityJoinWorldEvent(EntityJoinWorldEvent event) { + if (!(event.getEntity() instanceof PlayerEntity)) { return; } + PlayerEntity player = (PlayerEntity) event.getEntity(); + + LoginProtection.protected_players.add(new ProtectedPlayer(player.getUUID())); + } +} diff --git a/src/main/java/com/micle/loginprotection/setup/Registration.java b/src/main/java/com/micle/loginprotection/setup/Registration.java index 3274e87..02f5190 100644 --- a/src/main/java/com/micle/loginprotection/setup/Registration.java +++ b/src/main/java/com/micle/loginprotection/setup/Registration.java @@ -1,10 +1,14 @@ package com.micle.loginprotection.setup; +import com.micle.loginprotection.events.OnEntityJoinEventHandler; +import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; public class Registration { public static void register() { IEventBus mod_event_bus = FMLJavaModLoadingContext.get().getModEventBus(); + + MinecraftForge.EVENT_BUS.register(new OnEntityJoinEventHandler()); } }