November 17, 201311 yr Hi NetLoginHandler.initializePlayerConnection() has a forge call to FMLNetworkHandler.handleClientConnection() which contains this fragment: case LOGIN_RECEIVED: // mods can try and kick undesireables here String modKick = NetworkRegistry.instance().connectionReceived(netLoginHandler, netLoginHandler.myTCPConnection); which I think you can access using NetworkRegistry.registerConnectionHandler. There also appears to be handlers for playerLoggedIn, clientLoggedIn, and a couple of others. See IConnectionHandler. That's all I know, I've never actually tried this. But it does look promising. -TGG
November 17, 201311 yr Hello, Here is an example of the IConnectionHandler i use to print my update message: public class ConnectionHandler implements IConnectionHandler { @Override public void playerLoggedIn(Player player, NetHandler netHandler, INetworkManager manager) { if (Config.NEW_VERSION) { ((EntityPlayer)player).addChatMessage(Config.GetStringLocalization("NEW_VERSION_MESSAGE")); } } @Override public String connectionReceived(NetLoginHandler netHandler, INetworkManager manager) { return null; } @Override public void connectionOpened(NetHandler netClientHandler, String server, int port, INetworkManager manager) { } @Override public void connectionOpened(NetHandler netClientHandler, MinecraftServer server, INetworkManager manager) { } @Override public void connectionClosed(INetworkManager manager) { } @Override public void clientLoggedIn(NetHandler clientHandler, INetworkManager manager, Packet1Login login) { } You have to register it like this: NetworkRegistry.instance().registerConnectionHandler(new ConnectionHandler()); Hope that helps. ss7 You sir are a god damn hero.
November 17, 201311 yr Extending on this; is it possible to make a mod only work when a user connects to a specific server? I may be making a private mod for someone, and by doing that they can test it out while it's being worked on. http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
November 17, 201311 yr I was making same thing, but that was like a year ago? (1.2.5) GuiMainMenu uses GuiConnecting which uses Threads that handle ip's and ports - in that times (1.2.5) there wasn't any method capable of doing what you want so I used it. But from what I remember (which is really sad) I added one boolean to vanillia code which is later used(Client.SIDE) by Forge mod (which checks if this is "the" server). Since that was a private server I just told them that whenever they make a new pack they should put this one file into minecraft.jar. This might be a solution if you won't find anything better. ;/ 2min in code and I got this: (Don't ask me, am just giving a hint ;p) ServerAddress.class public String getIP() { return this.ipAddress; } private static String[] getServerAddress(String par0Str) 1.7.10 is no longer supported by forge, you are on your own.
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.