Posted November 8, 201311 yr As 1.7 is nearly upon us it also gives us the opportunity to refactor some packages. I propose to combine FML's network handlers into forge events along with the addition of a ServerListPingEvent. Below I have outlined what I hope to put in my pull request, depending on how much 1.7 changes things. If you think these handlers should remain in FML, I could just convert IPlayerTracker to events and add the extra data shown below along with the ServerListPingEvent. (Client) net.minecraftforge.client.event.network.ClientConnectionOpenedRemoteEvent - Was IConnectionHandler.connectionOpened(NetHandler netClientHandler, String server, int port, INetworkManager manager) - Event would have access to: - NetClientHandler, was NetHandler. No longer need to cast to NetClientHandler. - Server IP address as string - Server Port as integer - INetworkManager (Client) net.minecraftforge.client.event.network.ClientConnectionOpenedIntegratedEvent - Was IConnectionHandler.connectionOpened(NetHandler netClientHandler, MinecraftServer server, INetworkManager manager) - Event would have access to: - NetClientHandler, was NetHandler. No longer need to cast to NetClientHandler. - Server as IntegratedServer, was MinecraftServer. No longer need to cast to IntegratedServer. - INetworkManager (Server) net.minecraftforge.common.event.network.ServerReceiveConnectionEvent - Was IConnectionHandler.connectionReceived(NetLoginHandler netHandler, INetworkManager manager) - Cancellable event, a custom kick message could be assigned - Event would have access to: - NetLoginHandler - TcpConnection (INetworkManager is an interface of TcpConnection, any reason to not use TcpConnection?) (Server) net.minecraftforge.common.event.network.PlayerLoginEvent - Was IConnectionHandler.playerLoggedIn(Player player, NetHandler netHandler, INetworkManager manager) - Can be combined with IPlayerTracker.onPlayerLogin(EntityPlayer player) - Event would have access to: - EntityPlayerMP - NetServerHandler, was NetHandler. No longer need to cast to NetServerHandler. - INetworkManager - MinecraftServer (Client) net.minecraftforge.client.event.network.ClientLoginEvent - Was IConnectionHandler.clientLoggedIn(NetHandler clientHandler, INetworkManager manager, Packet1Login login) - Event would have access to: - NetClientHandler, was NetHandler. No longer need to cast to NetClientHandler. - INetworkManager - Packet1Login (Server) net.minecraftforge.common.event.network.PlayerLogoutEvent - Was IPlayerTracker.onPlayerLogout(EntityPlayer player) - Event would have access to: - NetClientHandler, was NetHandler. No longer need to cast to NetClientHandler. - INetworkManager - MinecraftServer (Both) net.minecraftforge.common.event.network.ConnectionClosedEvent - Was IConnectionHandler.connectionClosed(INetworkManager manager) - Event would have access to: - INetworkManager (Server) net.minecraftforge.common.event.network.PlayerChangedDimensionEvent - Was IPlayerTracker.onPlayerChangedDimension(EntityPlayer player) - Event would have access to: - EntityPlayerMP - MinecraftServer - Teleporter - Old dimension id - New dimension id (Server) net.minecraftforge.common.event.network.PlayerRespawnEvent - Was IPlayerTracker.onPlayerRespawn(EntityPlayer player) - Event would have access to: - EntityPlayerMP - MinecraftServer - world the player is being respawned into. - boolean for if the player beat the game. (Server) net.minecraftforge.common.event.network.ServerChatRecievedEvent - Was ServerChatEvent,changed the name to match the client event and move to network package (Client) net.minecraftforge.client.event.network.ClientChatRecievedEvent - Move to network package (Server) net.minecraftforge.common.event.network.ServerListPingEvent - Event would have access to: - Pinger's address - Able to send back a custom MOTD - Able to send back a custom number of current players - Able to send back a custom number of maximum players
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.