Jump to content

Recommended Posts

Posted

Guys I have a mod that add something specials for my server, it's the RageMode, whenever the player do the right click after a combo of 80 hits, it will start the rage mode BUT:

 

I want that the rage mode ends after 7.2 seconds!

 

I tried making a TickHandler but I can't figure out how to do that, I never did something with ticks, if you can help me and the code works I'll finally know how to do ticks :3

 

My ExoRageModeEvent code:

 

public class ExoRageModeEvent extends ItemSword {

public static int comboStreak = 0;
public static int maxComboStreak = 240;
public static int minComboStreak = 3;
public static boolean rageMode = false;
public static boolean soundStarted = false;

public ExoRageModeEvent(int par1, EnumToolMaterial par2EnumToolMaterial) {
	super(par1, par2EnumToolMaterial);
	// TODO Auto-generated constructor stub
}

@SideOnly(Side.CLIENT)
public void onUpdate(ItemStack item, World world, Entity entity, int par4,
		boolean par5) {
	if (par5 && (entity instanceof EntityPlayer)) {
		if (rageMode == false) {
			EntityPlayer player = (EntityPlayer) entity;
		} else {
			EntityPlayer player = (EntityPlayer) entity;
			/*
			 * wait 7.2 seconds; rageMode = false;
			 */
		}

	} else {
		EntityPlayer player = (EntityPlayer) entity;
		player.capabilities.setPlayerWalkSpeed(0.1F);
		rageMode = false;
		comboStreak = 0;
	}
}

public boolean hitEntity(ItemStack par1ItemStack,
		EntityLiving par2EntityLiving, EntityLiving par3EntityLiving) {

	par2EntityLiving.setPosition(par2EntityLiving.posX,
			par2EntityLiving.posY, par2EntityLiving.posZ);

	comboStreak += 1;

	if (par3EntityLiving instanceof EntityPlayer) {
		if (comboStreak == 80) {
			EntityPlayer player = (EntityPlayer) par3EntityLiving;
			player.sendChatToPlayer("Your powerup is ready! Right click to activate it!");
		}
	}

	if (comboStreak > maxComboStreak) {
		comboStreak = 240;
	}

	return true;
}

@SideOnly(Side.CLIENT)
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World,
		EntityPlayer par3EntityPlayer) {

	if (comboStreak >= 80) {
		rageMode = true;
		// Wait 0.05 seconds because if I put in the condition "soundStarted == false"
		// it will automatically read first the soundStarted = true under that "playSoundEffect"
		// because the song will load 0.01 second after!
		par2World.playSoundEffect(par3EntityPlayer.posX,
				par3EntityPlayer.posY, par3EntityPlayer.posZ,
				"ExoWorld.RageMode", 1.0F, 1.0F);
		soundStarted = true;
	}
	if (comboStreak >= 90) {
		comboStreak = 0;
	}
	return par1ItemStack;
}

}

 

Any help? Thanks!

Posted

First:

@SideOnly(Side.CLIENT)

Don't write it if you don't know what it means. Seriously. Don't.

 

 

Now, in onUpdate, you can use world time as a counter or just increment your own counter field.

If you want to use a TickHandler, you'll have to make a class with "implements ITickHandler". There are tutorials on it.

Posted

First:

@SideOnly(Side.CLIENT)

I know what SideOnly means -.- I just put that in onItemRightClick for mistake, now it works on server PERFECTLY

 

Now, in onUpdate, you can use world time as a counter or just increment your own counter field.

 

How???

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • been getting this error and followed the old tick loop post however i cant figure out what file to delete Description: Exception in server tick loop java.lang.NullPointerException: Cannot invoke "net.minecraft.world.level.LevelAccessor.m_7654_()" because the return value of "net.minecraftforge.event.level.LevelEvent$Unload.getLevel()" is null     at com.lion.graveyard.platform.forge.HordeSpawner.onWorldUnload(HordeSpawner.java:41) ~[The_Graveyard_3.1_(FORGE)_for_1.20.1.jar%23196!/:?] {re:classloading}     at com.lion.graveyard.platform.forge.__HordeSpawner_onWorldUnload_Unload.invoke(.dynamic) ~[The_Graveyard_3.1_(FORGE)_for_1.20.1.jar%23196!/:?] {re:classloading,pl:eventbus:B}     at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.5.jar%2352!/:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.5.jar%2352!/:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.5.jar%2352!/:?] {}     at net.mehvahdjukaar.moonlight.api.platform.forge.PlatHelperImpl.invokeLevelUnload(PlatHelperImpl.java:279) ~[moonlight-1.20-2.13.66-forge.jar%23185!/:?] {re:classloading}     at net.mehvahdjukaar.moonlight.api.platform.PlatHelper.invokeLevelUnload(PlatHelper.java) ~[moonlight-1.20-2.13.66-forge.jar%23185!/:?] {re:mixin,re:classloading}     at net.mehvahdjukaar.moonlight.core.misc.FakeLevelManager.invalidate(FakeLevelManager.java:29) ~[moonlight-1.20-2.13.66-forge.jar%23185!/:?] {re:classloading}     at net.mehvahdjukaar.supplementaries.common.utils.fake_level.BlockTestLevel.invalidate(BlockTestLevel.java:34) ~[supplementaries-1.20-3.1.13.jar%23192!/:?] {re:classloading}     at net.mehvahdjukaar.supplementaries.common.block.faucet.FaucetBehaviorsManager.onReloadWithLevel(FaucetBehaviorsManager.java:129) ~[supplementaries-1.20-3.1.13.jar%23192!/:?] {re:classloading}     at net.mehvahdjukaar.supplementaries.common.events.ServerEvents.onServerStart(ServerEvents.java:160) ~[supplementaries-1.20-3.1.13.jar%23192!/:?] {re:mixin,re:classloading}     at net.mehvahdjukaar.supplementaries.common.events.forge.ServerEventsForge.onServerStart(ServerEventsForge.java:119) ~[supplementaries-1.20-3.1.13.jar%23192!/:?] {re:classloading}     at net.mehvahdjukaar.supplementaries.common.events.forge.__ServerEventsForge_onServerStart_ServerStartedEvent.invoke(.dynamic) ~[supplementaries-1.20-3.1.13.jar%23192!/:?] {re:classloading,pl:eventbus:B}     at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.5.jar%2352!/:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.5.jar%2352!/:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.5.jar%2352!/:?] {}     at net.minecraftforge.server.ServerLifecycleHooks.handleServerStarted(ServerLifecycleHooks.java:115) ~[forge-1.20.1-47.3.29-universal.jar%23212!/:?] {re:classloading}     at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:638) ~[server-1.20.1-20230612.114412-srg.jar%23207!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,xf:fml:xaerominimap:xaero_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,xf:fml:xaerominimap:xaero_minecraftserver,pl:mixin:APP:unionlib.mixins.json:MinecraftServerMixin,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.20.1-20230612.114412-srg.jar%23207!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,xf:fml:xaerominimap:xaero_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,xf:fml:xaerominimap:xaero_minecraftserver,pl:mixin:APP:unionlib.mixins.json:MinecraftServerMixin,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:A}     at java.lang.Thread.run(Thread.java:833) ~[?:?] {}  
    • Online forums in general seem to be declining in popularity imo. There’s still value here for certain types of content, such as written tutorials and blog posts which would otherwise get lost in the chat history fairly quickly on Discord. Also for those that prefer the forums format ofc. But for faster support related topics, I agree that the Discord is probably your best bet at the moment. The speed of responses is also down to the ratio of volunteers - the player support forum still seems pretty active, but the coding ones much less so. Once you’re feeling more confident in your modding skills, be the change you want to see
    • try the same link, i swapped logs after sitting in the world for a few minutes then leaving. Lmk if it keeps happening then ill just send a video of the live log on modrinth
    • It is an issue with chimes
  • Topics

×
×
  • Create New...

Important Information

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