Jump to content

CommonTickHandler


SeKtOR

Recommended Posts

I has succesfully write my mod in ssp with forge. But i need tick handler to check if player equip my armor(in ssp it work fine, but smp). So i need example for "CommonTickHandler", who checks player armor...

P.S. Sorry for bad english :'(

P.S.S. I can post sources, if they need...

Link to comment
Share on other sites

ITickingArmor doesn't include in forge 1.4.6. Any other solutions to check player amor?

P.S. My ticker

public class TickHandler implements ITickHandler 
{
@Override
public void tickStart(EnumSet<TickType> type, Object... tickData) 
{
	if(type.equals(EnumSet.of(TickType.SERVER)))
	{
		onServerTick(MinecraftServer.getServer());
	}
}

public void onServerTick(MinecraftServer server) {
System.out.println("Tick");
}

@Override
public void tickEnd(EnumSet<TickType> type, Object... tickData) 
{

}

@Override
public EnumSet<TickType> ticks() 
{
	return EnumSet.of(TickType.WORLD, TickType.SERVER, TickType.PLAYER);
}

@Override
public String getLabel() 
{
	return null;
}

}

Link to comment
Share on other sites

Sorry about this, but can you fix my code?

Forge tick system, much harder than modloader...

public class TickHandler implements ITickHandler 
{
@Override
public void tickStart(EnumSet<TickType> type, Object... tickData) 
{
  if(type.equals(EnumSet.of(TickType.PLAYER)))
  {
   onServerTick(MinecraftServer.getServer());
  }
}

public void onServerTick(MinecraftServer server) {
if(*** Player armor check ***) {
// do something
}
System.out.println("Tick");
}

@Override
public void tickEnd(EnumSet<TickType> type, Object... tickData) 
{

}

@Override
public EnumSet<TickType> ticks() 
{
  return EnumSet.of(TickType.SERVER, TickType.PLAYER);
}

@Override
public String getLabel() 
{
  return null;
}

}

Link to comment
Share on other sites

I agree, this code is a lot harder than ModLoader, but it's good, cuz it helps us learn. Anyways, until they implement that armor method ben is talking about, I will fix your code for you.

 

public class TickHandler implements ITickHandler 
{
public EnumSet<TickType> ticks() 
        {
	return EnumSet.of(TickType.SERVER);
}


public void tickStart(EnumSet<TickType> type, Object... tickData) 
{

}


public void tickEnd(EnumSet<TickType> type, Object... tickData) 
        {
		onPlayerTickInGame(TickType.SERVER);

}



public void onRenderTick()
{

}

public void onTickInGUI()
{

}

public String getLabel() 
       {
	return "YourMod server ticks";
}

public void onPlayerTickInGame(TickType SERVER)
{
	ArrayList par3 = (ArrayList)MinecraftServer.getServer().getConfigurationManager().playerEntityList;
	Iterator player = par3.iterator();

	while(player.hasNext())
	{
		EntityPlayer p = (EntityPlayer)player.next();
		ItemStack boots = p.inventory.armorInventory[0];
		ItemStack legs = p.inventory.armorInventory[1];
		ItemStack chest = p.inventory.armorInventory[2];
		ItemStack helm = p.inventory.armorInventory[3];

		if(boots == null || legs == null || chest == null || helm == null)
		{
			return;
		}

		else if(boots.itemID == YourMod.YourBoots.itemID && legs.itemID ==  YourMod.YourLegs.itemID && chest.itemID == YourMod.YourChest.itemID && helm.itemID == YourMod.YourHelmet.itemID)
		{
			//do stuff, I suggest test this out, try p.fallDamage = 0F; and tell me if this works  good luck!
		}

	}
}

}

 

Make sure to change all the places it says YourMod to your mod! Good luck my friend!

 

edit: I edited it so that it checks server ticks only, not client ticks, for performance's sake

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.