mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-12 08:17:35 +00:00
Add in some client only player connectivity events. Closes #5536
Signed-off-by: cpw <cpw+github@weeksfamily.ca>
This commit is contained in:
4 files changed
+134
-14
No files matched your search
@@ -0,0 +1,87 @@
|
||||
package net.minecraftforge.client.event;
|
||||
|
||||
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
||||
import net.minecraft.client.multiplayer.PlayerController;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
import net.minecraftforge.eventbus.api.Event;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Client side player connectivity events.
|
||||
*/
|
||||
public class ClientPlayerNetworkEvent extends Event {
|
||||
private final PlayerController controller;
|
||||
private final ClientPlayerEntity player;
|
||||
private final NetworkManager networkManager;
|
||||
|
||||
/**
|
||||
* @return the player controller for the client side
|
||||
*/
|
||||
@Nullable
|
||||
public PlayerController getController() {
|
||||
return controller;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the player instance (if present - may be null)
|
||||
*/
|
||||
@Nullable
|
||||
public ClientPlayerEntity getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the network connection (if present - may be null)
|
||||
*/
|
||||
@Nullable
|
||||
public NetworkManager getNetworkManager() {
|
||||
return networkManager;
|
||||
}
|
||||
|
||||
ClientPlayerNetworkEvent(final PlayerController controller, final ClientPlayerEntity player, final NetworkManager networkManager) {
|
||||
this.controller = controller;
|
||||
this.player = player;
|
||||
this.networkManager = networkManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired when the client player logs in to the server. The player should be initialized.
|
||||
*/
|
||||
public static class LoggedInEvent extends ClientPlayerNetworkEvent {
|
||||
|
||||
public LoggedInEvent(final PlayerController controller, final ClientPlayerEntity player, final NetworkManager networkManager) {
|
||||
super(controller, player, networkManager);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired when the player logs out. Note this might also fire when a new integrated server is being created.
|
||||
*/
|
||||
public static class LoggedOutEvent extends ClientPlayerNetworkEvent {
|
||||
|
||||
public LoggedOutEvent(final PlayerController controller, final ClientPlayerEntity player, final NetworkManager networkManager) {
|
||||
super(controller, player, networkManager);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired when the player object respawns, such as dimension changes.
|
||||
*/
|
||||
public static class RespawnEvent extends ClientPlayerNetworkEvent {
|
||||
private final ClientPlayerEntity oldPlayer;
|
||||
|
||||
public RespawnEvent(final PlayerController pc, final ClientPlayerEntity oldPlayer, final ClientPlayerEntity newPlayer, final NetworkManager networkManager) {
|
||||
super(pc, newPlayer, networkManager);
|
||||
this.oldPlayer = oldPlayer;
|
||||
}
|
||||
|
||||
public ClientPlayerEntity getOldPlayer() {
|
||||
return oldPlayer;
|
||||
}
|
||||
|
||||
public ClientPlayerEntity getNewPlayer() {
|
||||
return super.getPlayer();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -34,9 +34,13 @@ import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.SetMultimap;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.google.common.collect.Table;
|
||||
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
||||
import net.minecraft.client.gui.AbstractGui;
|
||||
import net.minecraft.client.gui.screen.MultiplayerScreen;
|
||||
import net.minecraft.client.gui.screen.WorldSelectionScreen;
|
||||
import net.minecraft.client.multiplayer.PlayerController;
|
||||
import net.minecraftforge.client.event.ClientPlayerNetworkEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.fml.ExtensionPoint;
|
||||
import net.minecraftforge.fml.ForgeI18n;
|
||||
import net.minecraftforge.fml.ModList;
|
||||
@@ -309,4 +313,17 @@ public class ClientHooks
|
||||
logger.error(Strings.repeat("+=", 25));
|
||||
}
|
||||
|
||||
public static void firePlayerLogin(PlayerController pc, ClientPlayerEntity player, NetworkManager networkManager) {
|
||||
MinecraftForge.EVENT_BUS.post(new ClientPlayerNetworkEvent.LoggedInEvent(pc, player, networkManager));
|
||||
}
|
||||
|
||||
public static void firePlayerLogout(PlayerController pc, ClientPlayerEntity player) {
|
||||
MinecraftForge.EVENT_BUS.post(new ClientPlayerNetworkEvent.LoggedOutEvent(pc, player, player != null ? player.connection != null ? player.connection.getNetworkManager() : null : null));
|
||||
}
|
||||
|
||||
public static void firePlayerRespawn(PlayerController pc, ClientPlayerEntity oldPlayer, ClientPlayerEntity newPlayer, NetworkManager networkManager) {
|
||||
MinecraftForge.EVENT_BUS.post(new ClientPlayerNetworkEvent.RespawnEvent(pc, oldPlayer, newPlayer, networkManager));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user