Posted March 22, 201411 yr [spoiler=Core] public static Map<String, SCoreEntityPlayerSP> playersClient = new HashMap<String, SCoreEntityPlayerSP>(); public static Map<String, SCoreEntityPlayerMP> playersServer = new HashMap<String, SCoreEntityPlayerMP>(); [spoiler=SCoreEntityPlayerMP] package nuclear.mods.space.entity.player; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemInWorldManager; import net.minecraft.server.MinecraftServer; import net.minecraft.util.DamageSource; import net.minecraft.world.World; import nuclear.mods.space.SLog; import nuclear.mods.space.SpaceCore; public class SCoreEntityPlayerMP extends EntityPlayerMP { private long tick; public SCoreEntityPlayerMP(MinecraftServer server, World world, String username, ItemInWorldManager itemInWorldManager) { super(server, world, username, itemInWorldManager); if (!SpaceCore.playersServer.containsKey(this.username)) { SpaceCore.playersServer.put(this.username, this); SLog.info(" ADD"); } } @Override public void onDeath(DamageSource damageSource) { SpaceCore.playersServer.remove(this); SLog.info(" REMOVE"); super.onDeath(damageSource); } @Override public void onUpdate() { super.onUpdate(); if (!SpaceCore.playersServer.containsKey(this.username) || this.tick % 360 == 0) { SpaceCore.playersServer.put(this.username, this); SLog.info(" ADD"); } if (this.tick >= Long.MAX_VALUE) { this.tick = 0; } this.tick++; } } [spoiler=SCoreEntityPlayerSP] package nuclear.mods.space.entity.player; import java.util.ArrayList; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityClientPlayerMP; import net.minecraft.client.multiplayer.NetClientHandler; import net.minecraft.util.DamageSource; import net.minecraft.util.Session; import net.minecraft.world.World; import nuclear.mods.space.SLog; import nuclear.mods.space.SpaceCore; import nuclear.mods.space.api.ISchematicPage; public class SCoreEntityPlayerSP extends EntityClientPlayerMP { public ArrayList<ISchematicPage> unlockedSchematics = new ArrayList<ISchematicPage>(); public long tick; public SCoreEntityPlayerSP(Minecraft par1Minecraft, World par2World, Session par3Session, NetClientHandler par4NetClientHandler) { super(par1Minecraft, par2World, par3Session, par4NetClientHandler); if (!SpaceCore.playersClient.containsKey(this.username)) { SpaceCore.playersClient.put(this.username, this); SLog.info(" ADD"); } } @Override public void onDeath(DamageSource var1) { SpaceCore.playersClient.remove(this); SLog.info(" REMOVE"); super.onDeath(var1); } @Override public void onUpdate() { this.tick++; if (!SpaceCore.playersClient.containsKey(this.username) || this.tick % 360 == 0) { SpaceCore.playersClient.put(this.username, this); SLog.info(" ADD"); } super.onUpdate(); } } [spoiler=PlayerUtil] package nuclear.mods.space.util; import java.util.Iterator; import java.util.Map; import net.minecraft.entity.player.EntityPlayer; import nuclear.mods.space.SLog; import nuclear.mods.space.SpaceCore; import nuclear.mods.space.entity.player.SCoreEntityPlayerMP; import nuclear.mods.space.entity.player.SCoreEntityPlayerSP; public class PlayerUtil { public static SCoreEntityPlayerMP getPlayerBaseServerFromPlayerUsername(String username) { if (SpaceCore.playersServer.isEmpty()) { // new EmptyStackException().printStackTrace(); } final Iterator<Map.Entry<String, SCoreEntityPlayerMP>> it = SpaceCore.playersServer.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, SCoreEntityPlayerMP> entry = it.next(); if (entry.getKey().equals(username)) { return entry.getValue(); } } SLog.severe("Warning: Could not find player base server instance for player " + username); return null; } public static SCoreEntityPlayerMP getPlayerBaseServerFromPlayer(EntityPlayer player) { if (player == null) { return null; } if (SpaceCore.playersServer.isEmpty()) { // new EmptyStackException().printStackTrace(); } final Iterator<Map.Entry<String, SCoreEntityPlayerMP>> it = SpaceCore.playersServer.entrySet().iterator(); while (it.hasNext()) { final Map.Entry<String, SCoreEntityPlayerMP> entry = it.next(); if (entry.getKey().equals(player.username)) { return entry.getValue(); } } SLog.severe("Warning: Could not find player base server instance for player " + player.username); return null; } public static SCoreEntityPlayerSP getPlayerBaseClientFromPlayer(EntityPlayer player) { if (player == null) { return null; } if (SpaceCore.playersClient.isEmpty()) { return null; } final Iterator<Map.Entry<String, SCoreEntityPlayerSP>> it = SpaceCore.playersClient.entrySet().iterator(); while (it.hasNext()) { final Map.Entry<String, SCoreEntityPlayerSP> entry = it.next(); if (entry.getKey() != null && entry.getKey().equals(player.username)) { return entry.getValue(); } } SLog.severe("Warning: Could not find player base client instance for player " + player.username); return null; } } If I call SCoreEntityPlayerMP,SCoreEntityPlayerSP using PlayerUtil, I get a null value
March 22, 201411 yr Question, what is the problem? I'm not going to dig through your code unless a problem is presented. Alright, have you tried to see if it is attempting to check for the new EntityPlayer classes before they are even declared? http://www.slothygaming.com/img/ota.png[/img] If your grammar is shit and you blatantly don't know what you're doing, I will not help you.
March 22, 201411 yr Author Question, what is the problem? I'm not going to dig through your code unless a problem is presented. Add
March 22, 201411 yr In your core, when is the PlayerUtil initialized/referenced? You should declare your entities in your pre-init and then try using your PlayerUtil in post-init. http://www.slothygaming.com/img/ota.png[/img] If your grammar is shit and you blatantly don't know what you're doing, I will not help you.
March 22, 201411 yr Author In your core, when is the PlayerUtil initialized/referenced? You should declare your entities in your pre-init and then try using your PlayerUtil in post-init. I do not know how to do it. Can you help?
March 24, 201411 yr Author I want to do like this: https://github.com/micdoodle8/galacticraft https://github.com/micdoodle8/Galacticraft/tree/master/common/micdoodle8/mods/galacticraft/core/entities/player
March 24, 201411 yr Author I already did, but can you explain how did it here: https://github.com/micdoodle8/Galacticraft/tree/master/common/micdoodle8/mods/galacticraft/core/entities/player
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.