Jump to content

Imagine Engine

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by Imagine Engine

  1. Hey uh.. I think I'm a bit late to the topic. The way we would wanna do this as Draco18s mentions, is to look for a reference in the game files. Now there isn't a packet-type trigger that I found, but I got the code that @NullDev was trying out to work ServerPlayer serverplayer = (ServerPlayer)player; serverplayer.awardStat(Stats.ITEM_USED.get(Items.TOTEM_OF_UNDYING), 1); CriteriaTriggers.USED_TOTEM.trigger(serverplayer, Items.TOTEM_OF_UNDYING.getDefaultInstance()); You basically just have to set the ItemStack in the trigger method to the default ItemStack of a Totem Of Undying. And then you can add the other effects if you like. ServerPlayer serverplayer = (ServerPlayer)player; serverplayer.awardStat(Stats.ITEM_USED.get(Items.TOTEM_OF_UNDYING), 1); CriteriaTriggers.USED_TOTEM.trigger(serverplayer, Items.TOTEM_OF_UNDYING.getDefaultInstance()); player.setHealth(1.0F); player.removeAllEffects(); player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, 900, 1)); player.addEffect(new MobEffectInstance(MobEffects.ABSORPTION, 100, 1)); player.addEffect(new MobEffectInstance(MobEffects.FIRE_RESISTANCE, 800, 0)); player.level.broadcastEntityEvent(player, (byte)35); EDIT: Also fun fact! You CANNOT cancel or change the LivingDeathEvent in any way, so if you are trying to replace the death event by the totem trigger then I would suggest you have a check in the LivingDamageEvent... if(player.getHealth()-event.getAmount() <= 0){ event.setCanceled(true); ServerPlayer serverplayer = (ServerPlayer)player; serverplayer.awardStat(Stats.ITEM_USED.get(Items.TOTEM_OF_UNDYING), 1); CriteriaTriggers.USED_TOTEM.trigger(serverplayer, Items.TOTEM_OF_UNDYING.getDefaultInstance()); player.setHealth(1.0F); player.removeAllEffects(); player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, 900, 1)); player.addEffect(new MobEffectInstance(MobEffects.ABSORPTION, 100, 1)); player.addEffect(new MobEffectInstance(MobEffects.FIRE_RESISTANCE, 800, 0)); player.level.broadcastEntityEvent(player, (byte)35); } ..Like so Hope this helps!
×
×
  • Create New...

Important Information

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