Advertisement
Guest User

Problemnn

a guest
Jun 30th, 2015
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.61 KB | None | 0 0
  1. package com.derffamily.main;
  2.  
  3. import java.util.Arrays;
  4. import java.util.HashMap;
  5. import java.util.List;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.ChatColor;
  9. import org.bukkit.Material;
  10. import org.bukkit.OfflinePlayer;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.event.Event.Result;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15. import org.bukkit.event.entity.PlayerDeathEvent;
  16. import org.bukkit.event.inventory.CraftItemEvent;
  17. import org.bukkit.event.player.PlayerInteractAtEntityEvent;
  18. import org.bukkit.event.player.PlayerInteractEvent;
  19. import org.bukkit.event.player.PlayerJoinEvent;
  20. import org.bukkit.event.player.PlayerLevelChangeEvent;
  21. import org.bukkit.inventory.ItemStack;
  22. import org.bukkit.inventory.ShapelessRecipe;
  23. import org.bukkit.inventory.meta.ItemMeta;
  24. import org.bukkit.plugin.java.JavaPlugin;
  25. import org.bukkit.scoreboard.DisplaySlot;
  26. import org.bukkit.scoreboard.Objective;
  27. import org.bukkit.scoreboard.Score;
  28. import org.bukkit.scoreboard.Scoreboard;
  29.  
  30. public class Levelsystem extends JavaPlugin implements Listener {
  31.  
  32. private static Scoreboard board;
  33. private static Objective o;
  34. private static Score s;
  35.  
  36.  
  37.  
  38. static HashMap<OfflinePlayer, Score> scores = new HashMap<OfflinePlayer, Score>();
  39.  
  40. static ItemStack craft_result = null;
  41.  
  42.  
  43. public void loadConfiguration(){
  44.  
  45.  
  46.  
  47.  
  48.  
  49. this.getConfig().options().copyDefaults(true);
  50.  
  51. this.saveConfig();
  52. }
  53.  
  54.  
  55.  
  56.  
  57. public void onEnable() {
  58.  
  59.  
  60.  
  61. {
  62.  
  63.  
  64.  
  65. /**
  66. * Craft Result Information
  67. */
  68.  
  69.  
  70. ItemStack sword1 = new ItemStack(Material.IRON_SWORD, 1);
  71. ItemMeta sm1 = sword1.getItemMeta();
  72. sm1.setDisplayName(ChatColor.GOLD + "Rusty Iron Sword");
  73. sm1.setLore(Arrays.asList(ChatColor.GREEN + "Your rusty ol' sword"));
  74. sword1.setItemMeta(sm1);
  75. sword1.setDurability((short) 128);
  76. ShapelessRecipe sword1r = new ShapelessRecipe(sword1);
  77.  
  78. sword1r.addIngredient(Material.STICK);
  79. sword1r.addIngredient(Material.STICK);
  80. sword1r.addIngredient(Material.STICK);
  81. sword1r.addIngredient(Material.STICK);
  82. sword1r.addIngredient(Material.IRON_INGOT);
  83.  
  84. ItemStack result = sword1r.getResult();
  85.  
  86. craft_result=result;
  87. Bukkit.getServer().addRecipe(sword1r);
  88.  
  89. }
  90.  
  91. board = Bukkit.getServer().getScoreboardManager().getNewScoreboard();
  92. o = board.registerNewObjective("Stats", "dummy");
  93. o.setDisplayName(ChatColor.GOLD +"Player stats");
  94. o.setDisplaySlot(DisplaySlot.SIDEBAR);
  95.  
  96. s = o.getScore(ChatColor.GREEN + "Level:");
  97. loadConfiguration();
  98. Bukkit.getServer().getPluginManager().registerEvents(this, this);
  99.  
  100. this.getCommand("level").setExecutor(new LevelCommand(null));
  101.  
  102. List<String> s = getConfig().getStringList("levels");
  103. for(String str : s) {
  104.  
  105. String[] words = str.split(":");
  106. scores.put(Bukkit.getServer().getOfflinePlayer(words[0]), o.getScore( Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Level:")));
  107. scores.get(Bukkit.getServer().getOfflinePlayer(words[0])).setScore(Integer.parseInt(words[1]));
  108.  
  109. }
  110. saveDefaultConfig();
  111.  
  112.  
  113. }
  114.  
  115. public void onDisable() {
  116. List<String> s = getConfig().getStringList("levels");
  117. for(OfflinePlayer p : scores.keySet()) {
  118.  
  119. s.add(p.getName() + ":" + scores.get(p).getScore());
  120.  
  121. }
  122. getConfig().set("levels", s);
  123. saveConfig();
  124. }
  125.  
  126.  
  127.  
  128. @EventHandler
  129. public void playerlevel(PlayerLevelChangeEvent e) {
  130. if(e.getNewLevel() - e.getOldLevel() == 1) {
  131. scores.get(e.getPlayer()).setScore(scores.get(e.getPlayer()).getScore() + 1);
  132. } else {
  133. return;
  134. }
  135.  
  136. }
  137.  
  138. @EventHandler
  139. public void playerJoinEvents(PlayerJoinEvent e) {
  140.  
  141. Player p = e.getPlayer();
  142.  
  143. p.setScoreboard(board);
  144.  
  145. if(scores.get(p) == null) {
  146. scores.put(p, o.getScore( Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Level:")));
  147.  
  148. } else {
  149. return;
  150. }
  151.  
  152.  
  153. }
  154.  
  155. @EventHandler
  156. public void playerdeath(PlayerDeathEvent e) {
  157. Player p = e.getEntity();
  158. int score = scores.get(p).getScore();
  159.  
  160. if(p.isDead() && !p.hasPermission("level.bypass")) {
  161. scores.get(p).setScore(0);
  162. } else {
  163. return;
  164. }
  165.  
  166. System.out.println(prefix + "If you die you can lose levels (optional)");
  167. }
  168.  
  169.  
  170.  
  171. // End of levels //
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178. String prefix = ChatColor.GOLD + "[" + ChatColor.WHITE + ChatColor.BOLD + "Level" + ChatColor.GOLD + "]";
  179.  
  180.  
  181. @EventHandler
  182. public void deny_crafting(CraftItemEvent e){
  183. Player p = (Player) e.getWhoClicked();
  184.  
  185. if(craft_result!=null){
  186. if(e.getInventory().getResult().equals(craft_result)){
  187. if(scores.get(p)!=null){
  188. int score = scores.get(p).getScore();
  189.  
  190. if(score<5){
  191. e.setResult(Result.DENY);
  192.  
  193. ItemStack result = e.getInventory().getResult();
  194. e.getInventory().remove(result);
  195. /**
  196. * Could be also e.setCancelled(true) not tested!
  197. */
  198.  
  199. p.sendMessage("You need to be Level 5!");
  200. }
  201. }
  202. }
  203. }
  204.  
  205. System.out.println(prefix + "No crafting if level != required level");
  206. }
  207.  
  208.  
  209. @EventHandler
  210. public void deny_use(PlayerInteractEvent e) {
  211. Player p = e.getPlayer();
  212. int score = scores.get(p).getScore();
  213.  
  214. if(e.getItem().equals(craft_result) && e.getMaterial().equals(Material.IRON_SWORD)) {
  215. if(score < 5) {
  216. e.setCancelled(true);
  217. e.getPlayer().sendMessage(prefix + "Sorry! you're a too low level!");
  218. } else if(score >= 5) {
  219. return;
  220. }
  221. }
  222.  
  223.  
  224. System.out.println(prefix + "Denying Player weapon usage if level != required level");
  225.  
  226. }
  227.  
  228.  
  229.  
  230.  
  231. }
  232.  
  233.  
  234.  
  235. // End class //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement