Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (โ‹ฎ) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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...

  • Author

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;
}

}

  • Author

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;
}

}

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

You're right, lots easier than using the iterator. That's what I was looking for in my previous post.

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions โ†’ Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.