Advertisement
Blockhead7360

NullPointerException? - Bukkit Forums

Jul 5th, 2015
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.29 KB | None | 0 0
  1. package me.blockhead7360.skyboxmail;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.Material;
  11. import org.bukkit.command.Command;
  12. import org.bukkit.command.CommandSender;
  13. import org.bukkit.entity.Player;
  14. import org.bukkit.event.EventHandler;
  15. import org.bukkit.event.Listener;
  16. import org.bukkit.event.inventory.InventoryClickEvent;
  17. import org.bukkit.event.inventory.InventoryCloseEvent;
  18. import org.bukkit.inventory.Inventory;
  19. import org.bukkit.inventory.ItemStack;
  20. import org.bukkit.plugin.java.JavaPlugin;
  21.  
  22. public class SkyboxMail extends JavaPlugin implements Listener{
  23.  
  24.  
  25. Map<String, Boolean> map = new HashMap<String, Boolean>();
  26. Map<String, Boolean> hash = new HashMap<String, Boolean>();
  27. Map<String, String> maplel = new HashMap<String, String>();
  28.  
  29. public void onEnable(){
  30. saveDefaultConfig();
  31. getServer().getPluginManager().registerEvents(this, this);
  32.  
  33. }
  34.  
  35. @SuppressWarnings("unchecked")
  36. @EventHandler
  37. public void onInventoryClick(InventoryClickEvent e){
  38. if (map.get(e.getWhoClicked().getName())){
  39. e.setCancelled(true);
  40.  
  41. }
  42. if (hash.get(e.getWhoClicked().getName())){
  43. ItemStack i = e.getCurrentItem();
  44. List<ItemStack> list = (List<ItemStack>) getConfig().getList("mailbox." + maplel.get(e.getWhoClicked().getName()));
  45. list.remove(i);
  46. getConfig().set("mailbox." + maplel.get(e.getWhoClicked().getName()), list);
  47. saveConfig();
  48.  
  49. }
  50. else if (map.get(e.getWhoClicked().getName()) == false){
  51. return;
  52. }
  53.  
  54. else return;
  55.  
  56. }
  57.  
  58. @EventHandler
  59. public void onInventoryClose(InventoryCloseEvent e){
  60. if (map.get(e.getPlayer().getName())){
  61. map.put(e.getPlayer().getName(), false);
  62.  
  63. }
  64. if (hash.get(e.getPlayer().getName())){
  65. hash.put(e.getPlayer().getName(), false);
  66.  
  67. }
  68.  
  69.  
  70.  
  71.  
  72. else return;
  73. }
  74.  
  75. public void onDisable(){
  76. saveConfig();
  77. }
  78.  
  79. String prefix = ChatColor.translateAlternateColorCodes('&', getConfig().getString("prefix")) + " ";
  80.  
  81. String dark = ChatColor.DARK_RED + "";
  82. String red = ChatColor.RED + "";
  83. String green = ChatColor.GREEN + "";
  84. String yellow = ChatColor.YELLOW + "";
  85. String gold = ChatColor.GOLD + "";
  86. String bold = ChatColor.BOLD + "";
  87.  
  88. @SuppressWarnings("unchecked")
  89. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
  90. if (!(sender instanceof Player)){
  91. sender.sendMessage(prefix + red + "Sorry. The console cannot use this plugin.");
  92. return true;
  93. }
  94.  
  95. Player p = (Player) sender;
  96. if (cmd.getName().equalsIgnoreCase("skyboxmail")){
  97.  
  98. if (!sender.hasPermission("skyboxmail.help")){
  99. sender.sendMessage(prefix + dark + "You do not have permission.");
  100. return true;
  101. }
  102. if (args.length == 0){
  103. sender.sendMessage(gold + bold + "--- " + prefix + gold + bold + " ---");
  104. sender.sendMessage(green + "/skyboxmail [reload]" + yellow + " - Help/Reload the plugin");
  105. sender.sendMessage(green + "/sendmail <player>" + yellow + " - Send the item in your hand to a player\'s mailbox");
  106. sender.sendMessage(green + "/mailbox [player]" + yellow + " - See your mailbox or that of another player");
  107. sender.sendMessage(green + "/clearmailbox [player]" + yellow + " - Clear your mailbox or that of another player");
  108. sender.sendMessage(green + "/mailsign" + yellow + " - Tutorial on how to set up a mailbox sign");
  109. sender.sendMessage(green + "/sendamail <player>" + yellow + "Send the item in your hand to a player\'s mailbox ANONYMOUSLY");
  110. sender.sendMessage(ChatColor.BLUE + "SkyboxMail v" + this.getDescription().getVersion() + " by Blockhead7360");
  111. sender.sendMessage(gold + bold + "--- " + prefix + gold + bold + " ---");
  112. return true;
  113. }else{
  114. if (!sender.hasPermission("skyboxmail.reload")){
  115. sender.sendMessage(prefix + dark + "You do not have permission.");
  116. return true;
  117. }
  118. reloadConfig();
  119. sender.sendMessage(green + "The configuration file has been reloaded!");
  120. return true;
  121. }
  122. }
  123.  
  124. if (cmd.getName().equalsIgnoreCase("mailbox")){
  125. if (args.length == 0){
  126. if (!sender.hasPermission("skyboxmail.box")){
  127. sender.sendMessage(prefix + dark + "You do not have permission.");
  128. return true;
  129. }
  130. String t = getConfig().getString("inv-title");
  131. t = t.replace("{player}", sender.getName());
  132.  
  133. sender.sendMessage(prefix + green + "Loading mailbox...");
  134. Inventory v = Bukkit.getServer().createInventory(null, 54, ChatColor.translateAlternateColorCodes('&', t));
  135. for (Object i : getConfig().getList("mailbox." + sender.getName())){
  136. ItemStack n = (ItemStack) i;
  137. v.addItem(n);
  138.  
  139. }
  140. p.openInventory(v);
  141. hash.put(sender.getName(), true);
  142. maplel.put(sender.getName(), sender.getName());
  143. return true;
  144.  
  145.  
  146. }else{
  147. if (!sender.hasPermission("skyboxmail.box.others")){
  148. sender.sendMessage(prefix + dark + "You do not have permission.");
  149. return true;
  150. }
  151. String t = getConfig().getString("inv-title");
  152. t = t.replace("{player}", args[0]);
  153.  
  154. sender.sendMessage(prefix + green + "Loading mailbox...");
  155. Inventory v = Bukkit.getServer().createInventory(null, 54, ChatColor.translateAlternateColorCodes('&', t));
  156. for (Object i : getConfig().getList("mailbox." + args[0])){
  157. ItemStack n = (ItemStack) i;
  158. v.addItem(n);
  159. }
  160. p.openInventory(v);
  161. hash.put(sender.getName(), true);
  162. maplel.put(sender.getName(), args[0]);
  163. if (!sender.hasPermission("skyboxmail.box.edit.others")){
  164. map.put(sender.getName(), true);
  165. }
  166. return true;
  167. }
  168. }
  169.  
  170. if (cmd.getName().equalsIgnoreCase("sendamail")){
  171. if (!sender.hasPermission("skyboxmail.send.anonymous")){
  172. sender.sendMessage(prefix + dark + "You do not have permission.");
  173. return true;
  174. }
  175. if (args.length == 1){
  176.  
  177. ItemStack i = p.getItemInHand();
  178. if (i.getType() == Material.AIR){
  179. sender.sendMessage(prefix + red + "You must hold something in your hand.");
  180. return true;
  181. }
  182. List<String> lore = i.getItemMeta().getLore();
  183. lore.add(yellow + "Anonymously Sent!");
  184. i.getItemMeta().setLore(lore);
  185. List<ItemStack> list = (List<ItemStack>) getConfig().getList("mailbox." + args[0]);
  186. list.add(i);
  187. getConfig().set("mailbox." + args[0], list);
  188. saveConfig();
  189. sender.sendMessage(prefix + green + "Just sent an item to " + yellow + args[0]);
  190. sender.sendMessage(prefix + gold + "Material: " + yellow + i.getType());
  191. if (i.hasItemMeta()){
  192. if (i.getItemMeta().hasDisplayName()){
  193. sender.sendMessage(prefix + gold + "Display Name: " + yellow + i.getItemMeta().getDisplayName());
  194.  
  195. }
  196.  
  197. sender.sendMessage(prefix + gold + "Lore: " + yellow + i.getItemMeta().getLore().toString());
  198. if (i.getItemMeta().hasEnchants()){
  199. sender.sendMessage(prefix + gold + "Enchantments: " + yellow + i.getItemMeta().getEnchants().toString());
  200. }
  201.  
  202. }
  203. return true;
  204.  
  205.  
  206. }else{
  207. sender.sendMessage(prefix + red + "Usage: /sendamail <player>");
  208. sender.sendMessage(prefix + red + "WARNING: Player name is CaSe SeNsItIvE");
  209. return true;
  210. }
  211. }
  212.  
  213. if (cmd.getName().equalsIgnoreCase("sendmail")){
  214. if (!sender.hasPermission("skyboxmail.send")){
  215. sender.sendMessage(prefix + dark + "You do not have permission.");
  216. return true;
  217. }
  218. if (args.length == 1){
  219.  
  220. ItemStack i = p.getItemInHand();
  221. if (i.getType() == Material.AIR){
  222. sender.sendMessage(prefix + red + "You must hold something in your hand.");
  223. return true;
  224. }
  225. if (i.hasItemMeta() && i.getItemMeta().hasLore()){
  226. List<String> lore = i.getItemMeta().getLore();
  227. lore.add(yellow + "Sent from " + sender.getName());
  228. i.getItemMeta().setLore(lore);
  229. }
  230. if (!i.hasItemMeta()){
  231. List<String> lore = new ArrayList<String>();
  232. lore.add(yellow + "Sent from " + sender.getName());
  233. i.getItemMeta().setLore(lore);
  234.  
  235. }
  236. if (i.hasItemMeta() && !i.getItemMeta().hasLore()){
  237. List<String> lore = new ArrayList<String>();
  238. lore.add(yellow + "Sent from " + sender.getName());
  239. i.getItemMeta().setLore(lore);
  240.  
  241. }
  242.  
  243.  
  244. List<ItemStack> list = (List<ItemStack>) getConfig().getList("mailbox." + args[0]);
  245. list.add(i);
  246. getConfig().set("mailbox." + args[0], list);
  247. saveConfig();
  248. sender.sendMessage(prefix + green + "Just sent an item to " + yellow + args[0]);
  249. sender.sendMessage(prefix + gold + "Material: " + yellow + i.getType());
  250. if (i.hasItemMeta()){
  251. if (i.getItemMeta().hasDisplayName()){
  252. sender.sendMessage(prefix + gold + "Display Name: " + yellow + i.getItemMeta().getDisplayName());
  253.  
  254. }
  255.  
  256. sender.sendMessage(prefix + gold + "Lore: " + yellow + i.getItemMeta().getLore().toString());
  257. if (i.getItemMeta().hasEnchants()){
  258. sender.sendMessage(prefix + gold + "Enchantments: " + yellow + i.getItemMeta().getEnchants().toString());
  259. }
  260.  
  261. }
  262. return true;
  263.  
  264.  
  265. }else{
  266. sender.sendMessage(prefix + red + "Usage: /sendmail <player>");
  267. sender.sendMessage(prefix + red + "WARNING: Player name is CaSe SeNsItIvE");
  268. return true;
  269. }
  270.  
  271. }
  272.  
  273. return true;
  274. }
  275.  
  276.  
  277.  
  278. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement