Advertisement
jayhillx

healthevents

Oct 20th, 2020
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.51 KB | None | 0 0
  1. @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, modid = XLifeHealth.MOD_ID)
  2. public class HealthEvents {
  3.  
  4. private float maxHealth = 0;
  5.  
  6. public float getMaxHealth() {
  7. return maxHealth;
  8. }
  9. public void setMaxHealth(float maxHealth) {
  10. this.maxHealth = maxHealth;
  11. }
  12.  
  13. @SubscribeEvent
  14. public void onPlayerDie(LivingDeathEvent event) {
  15. if (event.getEntityLiving() instanceof PlayerEntity) {
  16. PlayerEntity player = (PlayerEntity) event.getEntityLiving();
  17. setMaxHealth(player.getMaxHealth());
  18. }
  19. }
  20.  
  21. @SubscribeEvent
  22. public void onRespawn(PlayerEvent.PlayerRespawnEvent event) {
  23. PlayerEntity player = event.getPlayer();
  24. SecurityCheck.securityCheck(player);
  25. setHealthAfterDeath(player);
  26. }
  27.  
  28. @SubscribeEvent
  29. public void onEnterNether(PlayerEvent.PlayerChangedDimensionEvent event) {
  30. PlayerEntity player = event.getPlayer();
  31. SecurityCheck.securityCheck(player);
  32. applyMaxHealthModifier(player, 0f);
  33. }
  34.  
  35. @SubscribeEvent
  36. public void onFirstJoin(PlayerEvent.PlayerLoggedInEvent event){
  37. PlayerEntity player = event.getPlayer();
  38. CompoundNBT entityData = player.getPersistentData();
  39. if(!entityData.getBoolean("xlifehealth.firstJoin") && player.getMaxHealth() == 20f) {
  40. entityData.putBoolean("xlifehealth.firstJoin", true);
  41. removeMaxHealthModifiers(player);
  42. applyMaxHealthModifier(player, -18f);
  43. SendMessage.sendMessage(player, TextFormatting.YELLOW + "=====================================");
  44. SendMessage.sendMessage(player, " ");
  45. SendMessage.sendMessage(player, TextFormatting.GOLD + "Welcome to X Life!");
  46. SendMessage.sendMessage(player, " ");
  47. SendMessage.sendMessage(player, TextFormatting.WHITE + "You'll start off with only one heart.");
  48. SendMessage.sendMessage(player, TextFormatting.WHITE + "Every time you die, a heart will be added.");
  49. SendMessage.sendMessage(player, TextFormatting.WHITE + "When you die with 10 hearts, you will be banned!");
  50. SendMessage.sendMessage(player, " ");
  51. SendMessage.sendMessage(player, TextFormatting.GOLD + "Good Luck!");
  52. SendMessage.sendMessage(player, " ");
  53. SendMessage.sendMessage(player, TextFormatting.YELLOW + "=====================================");
  54. }
  55. }
  56.  
  57. public void setHealthAfterDeath(PlayerEntity player) {
  58. if (getMaxHealth() >= 2 && getMaxHealth() <= 18) {
  59. float maxHealth = getMaxHealth();
  60. int lives = (int) (10 - (maxHealth / 2));
  61. int modifierAmount = (lives * 2 - 2) - ((lives * 2 - 2) + (lives * 2 - 2));
  62. removeMaxHealthModifiers(player);
  63. applyMaxHealthModifier(player, modifierAmount);
  64. if (lives < 10) {
  65. if (lives == 9) {
  66. SendMessage.sendMessage(player, TextFormatting.RED + "You have 9 lives remaining . . .");
  67. HeartColors.setBlueHearts();
  68. }
  69. if (lives == 8) {
  70. SendMessage.sendMessage(player, TextFormatting.RED + "You have 8 lives remaining . . .");
  71. HeartColors.setGreenHearts();
  72. }
  73. if (lives == 7) {
  74. SendMessage.sendMessage(player, TextFormatting.RED + "You have 7 lives remaining . . .");
  75. HeartColors.setOrangeHearts();
  76. }
  77. if (lives == 6) {
  78. SendMessage.sendMessage(player, TextFormatting.RED + "You have 6 lives remaining . . .");
  79. HeartColors.setPinkHearts();
  80. }
  81. if (lives == 5) {
  82. SendMessage.sendMessage(player, TextFormatting.RED + "You have 5 lives remaining . . .");
  83. HeartColors.setPurpleHearts();
  84. }
  85. if (lives == 4) {
  86. SendMessage.sendMessage(player, TextFormatting.RED + "You have 4 lives remaining . . .");
  87. HeartColors.setYellowHearts();
  88. }
  89. if (lives == 3) {
  90. SendMessage.sendMessage(player, TextFormatting.RED + "You have 3 lives remaining . . .");
  91. HeartColors.setCyanHearts();
  92. }
  93. if (lives == 2) {
  94. SendMessage.sendMessage(player, TextFormatting.RED + "You have 2 lives remaining . . .");
  95. HeartColors.setMagentaHearts();
  96. }
  97. if (lives == 1) {
  98. SendMessage.sendMessage(player, TextFormatting.DARK_RED + "You have 1 life remaining . . .");
  99. HeartColors.setBlackHearts();
  100. }
  101. }
  102. } else if (getMaxHealth() == 20) {
  103. player.setGameType(GameType.SPECTATOR);
  104. SendMessage.sendMessage(player,TextFormatting.RED + "You have died with 10 hearts remaining.");
  105. SendMessage.sendMessage(player,TextFormatting.RED + "You have been put in spectator mode.");
  106. removeMaxHealthModifiers(player);
  107. applyMaxHealthModifier(player, 20);
  108. } else {
  109. removeMaxHealthModifiers(player);
  110. applyMaxHealthModifier(player, -18);
  111. XLifeHealth.LOGGER.info("[XLIFEHEALTHMOD] Error ID: 100");
  112. XLifeHealth.LOGGER.info("[XLIFEHEALTHMOD] Please report this error to DaqEm.");
  113. }
  114. }
  115. }
  116.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement