Jump to content

[1.12.2] Potion Effect stuck at 0 time left


Seynox

Recommended Posts

Hi!

I want the player that has less than 9 food level to get Mining Fatigue.

Everything is working except the Mining fatigue effect that get stuck at 0:00s left

I know i could easily fix that by clearing his Mining Fatigue effect but if that happen, i guess something is wrong

 

The code :

Spoiler

	int ticksworld;
	private static PotionEffect HungryFatigue = new PotionEffect(MobEffects.MINING_FATIGUE, 40, 0, false, false);

	@SubscribeEvent
	public void onWorldTick(WorldTickEvent event) {
		World world = event.world;
		EntityPlayer player = Minecraft.getMinecraft().player;
		
		if(!(player == null) && !(world == null)) {
		
		if(ticksworld == 20) {
			ticksworld = 0;
			
			if(player.getFoodStats().getFoodLevel() <= 9 && player.getActivePotionEffect(MobEffects.MINING_FATIGUE) == null) {
				
				player.addPotionEffect(HungryFatigue);
				
				System.out.println("Effect Added"); //I used this to check if it stacks, and no its not
				}
			
		} else {ticksworld++;}
	}
	}

 

 

Link to comment
Share on other sites

1. You should create a new PotionEffect each time; do not store it in a static field.

2. You cannot create a field and use it as the cool down value; the field will be “shared” across all players, thus will mess up your cool down.

3. Check World#isRemote to make sure your code is only ran on the server side.

  • Thanks 1

Some tips:

Spoiler

Modder Support:

Spoiler

1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code.

2. Always post your code.

3. Never copy and paste code. You won't learn anything from doing that.

4. 

Quote

Programming via Eclipse's hotfixes will get you nowhere

5. Learn to use your IDE, especially the debugger.

6.

Quote

The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it.

Support & Bug Reports:

Spoiler

1. Read the EAQ before asking for help. Remember to provide the appropriate log(s).

2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.

 

 

Link to comment
Share on other sites

29 minutes ago, DavidM said:

1. You should create a new PotionEffect each time; do not store it in a static field.

2. You cannot create a field and use it as the cool down value; the field will be “shared” across all players, thus will mess up your cool down.

3. Check World#isRemote to make sure your code is only ran on the server side.

I now have that, but still stuck at 0:00

Spoiler

int ticksworld;
	@SubscribeEvent
	public void onWorldTick(WorldTickEvent event) {
		World world = event.world;
		EntityPlayer player = Minecraft.getMinecraft().player;
		
		if(!(player == null) && !(world == null)) {
		
		if(ticksworld == 20) {
			ticksworld = 0;
			
			if(player.getFoodStats().getFoodLevel() <= 9 && player.getActivePotionEffect(MobEffects.MINING_FATIGUE) == null) {
				
				if(!world.isRemote) {
					
					player.addPotionEffect(new PotionEffect(MobEffects.MINING_FATIGUE, 40, 0, false, false));
				}
				
				System.out.println("Effect Added");
				}
			
		} else {ticksworld++;}
		}
	}

 

 

Link to comment
Share on other sites

16 minutes ago, diesieben07 said:
  • WorldTickEvent is entirely server side, as such in your code you are reaching across logical sides by accessing Minecraft#player. Use PlayerTickEvent instead and check that you are on the server (World#isRemote). Only the server can manipulate potion effects.
  • TickEvent fires twice every tick, check TickEvent#phase.
  • As mentioned above, you cannot have a global counter like that. If you just want to check every 20 ticks on the server use (World#getTotalWorldTime() % 20) == 0.

Fixed! Thanks

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Sonic77 adalah pilihan tepat bagi Anda yang menginginkan pengalaman bermain slot yang unggul dengan akun pro Swiss terbaik. Berikut adalah beberapa alasan mengapa Anda harus memilih Sonic77: Slot Gacor Terbaik Kami menyajikan koleksi slot gacor terbaik dari provider terkemuka. Dengan fitur-fitur unggulan dan peluang kemenangan yang tinggi, Anda akan merasakan pengalaman bermain yang tak terlupakan. Akun Pro Swiss Berkualitas Kami menawarkan akun pro Swiss yang berkualitas dan terpercaya. Dengan akun ini, Anda dapat menikmati berbagai keuntungan eksklusif dan fasilitas premium yang tidak tersedia untuk akun reguler.
    • SV388 SITUS RESMI SABUNG AYAM 2024   Temukan situs resmi untuk sabung ayam terpercaya di tahun 2024 dengan SV388! Dengan layanan terbaik dan pengalaman bertaruh yang tak tertandingi, SV388 adalah tempat terbaik untuk pecinta sabung ayam. Daftar sekarang untuk mengakses arena sabung ayam yang menarik dan nikmati kesempatan besar untuk meraih kemenangan. Jelajahi sensasi taruhan yang tak terlupakan di tahun ini dengan SV388! [[jumpuri:❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰ > https://w303.pink/orochimaru]] [[jumpuri:❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰ > https://w303.pink/orochimaru]]   JURAGANSLOT88 SITUS JUDI SLOT ONLINE TERPERCAYA 2024 Jelajahi pengalaman judi slot online terpercaya di tahun 2024 dengan JuraganSlot88! Sebagai salah satu situs terkemuka, JuraganSlot88 menawarkan berbagai pilihan permainan slot yang menarik dengan layanan terbaik dan keamanan yang terjamin. Daftar sekarang untuk mengakses sensasi taruhan yang tak terlupakan dan raih kesempatan besar untuk meraih kemenangan di tahun ini dengan JuraganSlot88 [[jumpuri:❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰ > https://w303.pink/orochimaru]] [[jumpuri:❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰ > https://w303.pink/orochimaru]]
    • Slot Bank MEGA atau Daftar slot Bank MEGA bisa anda lakukan pada situs WINNING303 kapanpun dan dimanapun, Bermodalkan Hp saja anda bisa mengakses chat ke agen kami selama 24 jam full. keuntungan bergabung bersama kami di WINNING303 adalah anda akan mendapatkan bonus 100% khusus member baru yang bergabung dan deposit. Tidak perlu banyak, 5 ribu rupiah saja anda sudah bisa bermain bersama kami di WINNING303 . Tunggu apa lagi ? Segera Klik DAFTAR dan anda akan jadi Jutawan dalam semalam.
    • ladangtoto situs resmi ladangtoto situs terpercaya 2024   Temukan situs resmi dan terpercaya untuk tahun 2024 di LadangToto! Dengan layanan terbaik dan keamanan yang terjamin, LadangToto adalah pilihan utama untuk penggemar judi online. Daftar sekarang untuk mengakses berbagai jenis permainan taruhan, termasuk togel, kasino, dan banyak lagi. Jelajahi sensasi taruhan yang tak terlupakan dan raih kesempatan besar untuk meraih kemenangan di tahun ini dengan LadangToto!" [[jumpuri:❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰ > https://w303.pink/orochimaru]] [[jumpuri:❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰ > https://w303.pink/orochimaru]]
    • WINNING303 DAFTAR SITUS JUDI SLOT RESMI TERPERCAYA 2024 Temukan situs judi slot resmi dan terpercaya untuk tahun 2024 di Winning303! Daftar sekarang untuk mengakses pengalaman berjudi slot yang aman dan terjamin. Dengan layanan terbaik dan reputasi yang kokoh, Winning303 adalah pilihan terbaik bagi para penggemar judi slot. Jelajahi berbagai pilihan permainan dan raih kesempatan besar untuk meraih kemenangan di tahun ini dengan Winning303 [[jumpuri:❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰ > https://w303.pink/orochimaru]] [[jumpuri:❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰ > https://w303.pink/orochimaru]]
  • Topics

×
×
  • Create New...

Important Information

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