Advertisement
Guest User

Untitled

a guest
Apr 26th, 2015
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.43 KB | None | 0 0
  1. package fr.leomelki.il;
  2.  
  3. import java.io.File;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map.Entry;
  7. import java.util.UUID;
  8.  
  9. import org.bukkit.Bukkit;
  10. import org.bukkit.ChatColor;
  11. import org.bukkit.Material;
  12. import org.bukkit.command.Command;
  13. import org.bukkit.command.CommandSender;
  14. import org.bukkit.configuration.ConfigurationSection;
  15. import org.bukkit.enchantments.Enchantment;
  16. import org.bukkit.entity.Player;
  17. import org.bukkit.event.EventHandler;
  18. import org.bukkit.event.Listener;
  19. import org.bukkit.event.inventory.InventoryType;
  20. import org.bukkit.event.player.PlayerJoinEvent;
  21. import org.bukkit.event.player.PlayerQuitEvent;
  22. import org.bukkit.inventory.Inventory;
  23. import org.bukkit.inventory.ItemStack;
  24. import org.bukkit.inventory.meta.ItemMeta;
  25. import org.bukkit.plugin.java.JavaPlugin;
  26.  
  27. public class ZeWills extends JavaPlugin implements Listener {
  28.  
  29. public void onEnable() {
  30. Bukkit.getServer().getPluginManager().registerEvents(this, this);
  31.  
  32. File f = new File(getDataFolder(), "config.yml");
  33.  
  34. if (!f.exists()) {
  35. try {
  36. getConfig().options().copyDefaults(false);
  37. getConfig().createSection("players");
  38. saveDefaultConfig();
  39. saveConfig();
  40. } catch (Exception e) {
  41. e.printStackTrace();
  42. }
  43. }
  44.  
  45. }
  46.  
  47. public void onDisabled()
  48.  
  49. {
  50. for (Entry<UUID, Inventory> entry : banque.entrySet()) {
  51.  
  52. if (!getConfig().contains("players." + entry.getKey())) {
  53. getConfig().createSection("players." + entry.getKey());
  54. }
  55.  
  56. char c = 'a';
  57. for (org.bukkit.inventory.ItemStack is : entry.getValue()) {
  58. if (is != null) {
  59. saveItem(getConfig().createSection("players." + entry.getKey() + "." + c++), is);
  60.  
  61. }
  62.  
  63. }
  64. saveConfig();
  65. }
  66. }
  67.  
  68. public HashMap<UUID, Inventory> banque = new HashMap<UUID, Inventory>();
  69.  
  70. @EventHandler
  71. public void onJoin(PlayerJoinEvent e) {
  72. Player p = e.getPlayer();
  73.  
  74. Inventory inv = Bukkit.getServer().createInventory(p,
  75. InventoryType.CHEST);
  76.  
  77. if (!getConfig().contains("players."+p.getUniqueId())) {
  78. getConfig().createSection("players." + p.getUniqueId());
  79. saveConfig();
  80. banque.put(p.getUniqueId(), inv);
  81. p.sendMessage(ChatColor.GOLD+"Votre compte en banque a été créer ! Tapez /banque pour stocker vos items !");
  82.  
  83. } else {
  84. for (String Item : getConfig().getConfigurationSection("players." + p.getUniqueId()).getKeys(false)) {
  85. inv.addItem(loadItem(getConfig().getConfigurationSection("players." + p.getUniqueId() + "." + Item)));
  86. banque.put(p.getUniqueId(), inv);
  87. }
  88. }
  89.  
  90. }
  91.  
  92. @EventHandler
  93. public void onQuit(PlayerQuitEvent e) {
  94. Player p = e.getPlayer();
  95. if (!getConfig().contains("players." + p.getUniqueId()))
  96. ;
  97. {
  98. getConfig().createSection("players." + p.getUniqueId());
  99. }
  100.  
  101. char c = 'a';
  102. for (org.bukkit.inventory.ItemStack is : banque.get(p.getUniqueId())) {
  103. if (is != null) {
  104. saveItem(getConfig().createSection("players."+p.getUniqueId()+"."+c++), is);
  105.  
  106. }
  107.  
  108. }
  109. saveConfig();
  110.  
  111. }
  112.  
  113. @SuppressWarnings("deprecation")
  114. private void saveItem(ConfigurationSection section, ItemStack is) {
  115. section.set("type", is.getType().name());
  116. section.set("qt", is.getAmount());
  117. if(is.hasItemMeta()){
  118. ItemMeta im = is.getItemMeta();
  119. if(im.hasDisplayName()){
  120. section.set("dname", im.getDisplayName());
  121. }
  122. if(im.hasLore()){
  123. section.set("lore", im.getLore());
  124. }
  125. if(im.hasEnchants()){
  126. section.set("ench.name", im.getEnchants().keySet().toArray());
  127. section.set("ench.lvl", im.getEnchants().values().toArray());
  128. }
  129. section.set("data", is.getData().getData());
  130. section.set("dura", is.getDurability());
  131. }
  132. section.set("qt", is.getAmount());
  133. }
  134.  
  135. @SuppressWarnings("deprecation")
  136. private ItemStack loadItem(ConfigurationSection section) {
  137. ItemStack is = new ItemStack(Material.valueOf(section.getString("type")), section.getInt("qt"));
  138. if(section.contains("dname") || section.contains("lore") || section.contains("ench")){
  139. ItemMeta im = is.getItemMeta();
  140. if(section.contains("dname")){
  141. im.setDisplayName(section.getString("dname"));
  142. }
  143. if(section.contains("lore")){
  144. im.setLore(section.getStringList("lore"));
  145. }
  146. if(section.contains("ench")){
  147. HashMap<Enchantment, Integer> ench = new HashMap<Enchantment, Integer>();
  148. List<String> enc = section.getStringList("ench.name");
  149. List<String> lvl = section.getStringList("ench.lvl");
  150. int i = 0;
  151. while(i != ench.size()){
  152. ench.put(Enchantment.getByName(enc.get(i)), Integer.valueOf(lvl.get(i)));
  153. i++;
  154. }
  155. }
  156. is.getData().setData((byte) section.getDouble("data"));
  157. is.setDurability((short) section.getDouble("dura"));
  158. is.setItemMeta(im);
  159. }
  160. return is;
  161. }
  162.  
  163. public boolean onCommand(CommandSender sender, Command cmd, String label,
  164. String[] args) {
  165. Player p = (Player) sender;
  166. if (cmd.getName().equalsIgnoreCase("banque")) {
  167. try {
  168.  
  169. p.openInventory(banque.get(p.getUniqueId()));
  170. } catch (NullPointerException err) {
  171. Inventory inv = Bukkit.getServer().createInventory(p,
  172. InventoryType.CHEST);
  173.  
  174. for (String Item : getConfig().getConfigurationSection(
  175. "players." + p.getUniqueId()).getKeys(false)) {
  176. inv.addItem(loadItem(getConfig().getConfigurationSection(
  177. "players." + p.getUniqueId() + "." + Item)));
  178. banque.put(p.getUniqueId(), inv);
  179. p.openInventory(banque.get(p.getUniqueId()));
  180. }
  181. }
  182. }
  183. return false;
  184. }
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement