Motd.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package com.gmail.nossr50.util;
  2. import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
  3. import com.gmail.nossr50.locale.LocaleLoader;
  4. import com.gmail.nossr50.mcMMO;
  5. import com.gmail.nossr50.util.skills.PerksUtils;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.plugin.PluginDescriptionFile;
  8. import java.text.DecimalFormat;
  9. public final class Motd {
  10. public static final String PERK_PREFIX = LocaleLoader.getString("MOTD.PerksPrefix") + " ";
  11. private static final PluginDescriptionFile pluginDescription = mcMMO.p.getDescription();
  12. private Motd() {
  13. }
  14. public static void displayAll(Player player) {
  15. displayVersion(player, pluginDescription.getVersion());
  16. displayHardcoreSettings(player);
  17. displayXpPerks(player);
  18. displayCooldownPerks(player);
  19. displayActivationPerks(player);
  20. displayLuckyPerks(player);
  21. displayWebsite(player, pluginDescription.getWebsite());
  22. }
  23. /**
  24. * Display version info.
  25. *
  26. * @param player Target player
  27. * @param version Plugin version
  28. */
  29. public static void displayVersion(Player player, String version) {
  30. if (Permissions.showversion(player)) {
  31. player.sendMessage(LocaleLoader.getString("MOTD.Version.Overhaul", version));
  32. }
  33. }
  34. /**
  35. * Display Hardcore Mode settings.
  36. *
  37. * @param player Target player
  38. */
  39. public static void displayHardcoreSettings(Player player) {
  40. boolean deathStatLossEnabled = HardcoreManager.isStatLossEnabled();
  41. boolean vampirismEnabled = HardcoreManager.isVampirismEnabled();
  42. if (!deathStatLossEnabled && !vampirismEnabled) {
  43. return;
  44. }
  45. String statLossInfo = "";
  46. String vampirismInfo = "";
  47. String seperator = "";
  48. if (deathStatLossEnabled) {
  49. statLossInfo = LocaleLoader.getString("Hardcore.DeathStatLoss.Name");
  50. }
  51. if (vampirismEnabled) {
  52. vampirismInfo = LocaleLoader.getString("Hardcore.Vampirism.Name");
  53. }
  54. if (deathStatLossEnabled && vampirismEnabled) {
  55. seperator = " & ";
  56. }
  57. player.sendMessage(LocaleLoader.getString("MOTD.Hardcore.Enabled", statLossInfo + seperator + vampirismInfo));
  58. if (deathStatLossEnabled) {
  59. player.sendMessage(LocaleLoader.getString("MOTD.Hardcore.DeathStatLoss.Stats", mcMMO.getConfigManager().getConfigHardcore().getDeathPenalty().getPenaltyPercentage()));
  60. }
  61. if (vampirismEnabled) {
  62. player.sendMessage(LocaleLoader.getString("MOTD.Hardcore.Vampirism.Stats", mcMMO.getConfigManager().getConfigHardcore().getVampirism().getPenaltyPercentage()));
  63. }
  64. }
  65. /**
  66. * Display XP perks.
  67. *
  68. * @param player Target player
  69. */
  70. public static void displayXpPerks(Player player) {
  71. for (PrimarySkillType skill : PrimarySkillType.values()) {
  72. // if (PerksUtils.handleXpPerks(player, 1, skill) > 1) {
  73. // player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.XP.Name"), LocaleLoader.getString("Perks.XP.Desc")));
  74. // return;
  75. // }
  76. }
  77. }
  78. /**
  79. * Display cooldown perks.
  80. *
  81. * @param player Target player
  82. */
  83. public static void displayCooldownPerks(Player player) {
  84. double cooldownReduction = 1 - (PerksUtils.handleCooldownPerks(player, 12) / 12.0);
  85. if (cooldownReduction > 0.0) {
  86. DecimalFormat percent = new DecimalFormat("##0.00%");
  87. player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Cooldowns.Name"), LocaleLoader.getString("Perks.Cooldowns.Desc", percent.format(cooldownReduction))));
  88. }
  89. }
  90. /**
  91. * Display activiation perks.
  92. *
  93. * @param player Target player
  94. */
  95. public static void displayActivationPerks(Player player) {
  96. int perkAmount = PerksUtils.handleActivationPerks(player, 0, 0);
  97. if (perkAmount > 0) {
  98. player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.ActivationTime.Name"), LocaleLoader.getString("Perks.ActivationTime.Desc", perkAmount)));
  99. }
  100. }
  101. /**
  102. * Display "lucky" perks.
  103. *
  104. * @param player Target player
  105. */
  106. public static void displayLuckyPerks(Player player) {
  107. for (PrimarySkillType skill : PrimarySkillType.values()) {
  108. if (Permissions.lucky(player, skill)) {
  109. player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Lucky.Name"), LocaleLoader.getString("Perks.Lucky.Desc.Login")));
  110. return;
  111. }
  112. }
  113. }
  114. /**
  115. * Display website info.
  116. *
  117. * @param player Target player
  118. * @param website Plugin website
  119. */
  120. public static void displayWebsite(Player player, String website) {
  121. player.sendMessage(LocaleLoader.getString("MOTD.Website", website));
  122. }
  123. }