Armagidon

Main урок 5

Dec 11th, 2017
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.73 KB | None | 0 0
  1. package nms.main;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.Arrays;
  6. import java.util.Random;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.Location;
  10. import org.bukkit.Material;
  11. import org.bukkit.Sound;
  12. import org.bukkit.command.Command;
  13. import org.bukkit.command.CommandSender;
  14. import org.bukkit.configuration.file.FileConfiguration;
  15. import org.bukkit.configuration.file.YamlConfiguration;
  16. import org.bukkit.entity.Player;
  17. import org.bukkit.event.EventHandler;
  18. import org.bukkit.event.Listener;
  19. import org.bukkit.event.block.Action;
  20. import org.bukkit.event.player.PlayerInteractEvent;
  21. import org.bukkit.event.player.PlayerJoinEvent;
  22. import org.bukkit.inventory.ItemStack;
  23. import org.bukkit.inventory.meta.ItemMeta;
  24. import org.bukkit.plugin.java.JavaPlugin;
  25.  
  26. public class Main extends JavaPlugin implements Listener
  27. {
  28.     private FileConfiguration config, loc;
  29.    
  30.     @Override
  31.     public void onEnable() {
  32.         File f = new File(getDataFolder(), "loc.yml");
  33.         loc = YamlConfiguration.loadConfiguration(f);
  34.         if(!f.exists())
  35.         {
  36.             try {
  37.                 f.createNewFile();
  38.             }catch(IOException e)
  39.             {
  40.                 e.printStackTrace();
  41.             }
  42.         }
  43.         config = getConfig();
  44.         config.options().copyDefaults(true);
  45.         saveDefaultConfig();
  46.         getServer().getPluginManager().registerEvents(this, this);
  47.         getCommand("heal").setExecutor(new CommadHeal());
  48.         if(config.getBoolean("mes.enable") == false) getServer().getPluginManager().disablePlugin(this); else {
  49.             return;
  50.         }
  51.     }
  52.    
  53.     @Override
  54.     public boolean onCommand(CommandSender sender, Command command, String lbl, String[] args) {
  55.         if(lbl.equalsIgnoreCase("setmessage"))
  56.         {
  57.             StringBuilder sb = new StringBuilder();
  58.             for(int i =0; i < args.length; i++)
  59.             {
  60.                 sb.append(args[i] + " ");
  61.             }
  62.             String mes = sb.toString().replace('&', '§');
  63.             config.set("mes.string", mes);
  64.             saveConfig();
  65.         }
  66.         if(lbl.equalsIgnoreCase("warp"))
  67.         {
  68.             Player p = (Player) sender;
  69.             Location loci = teleporttoloc(p, args[0]);
  70.             if(args.length == 0 || args.length > 1) {
  71.                 return false;
  72.             } else {
  73.                 p.teleport(loci);
  74.             }
  75.             return true;
  76.         }
  77.         if(lbl.equalsIgnoreCase("setwarp"))
  78.         {
  79.             Player p = (Player) sender;
  80.             p.sendMessage("Локация установлена");
  81.             if(args.length == 0 || args.length > 1) {
  82.                 return false;
  83.             } else {
  84.                 setloc(p, args[0]);
  85.             }
  86.             return true;
  87.         }
  88.         return false;
  89.     }
  90.    
  91.     public Location teleporttoloc(Player p, String name) {
  92.         File f = new File(getDataFolder(), "loc.yml");
  93.         loc = YamlConfiguration.loadConfiguration(f);
  94.         Location loci = new Location(Bukkit.getWorld(loc.getString("loc."+name+".world")),
  95.                 loc.getDouble("loc."+name+".x"),
  96.                 loc.getDouble("loc."+name+".y"),
  97.                 loc.getDouble("loc."+name+".z"),
  98.                 (float)loc.getDouble("loc."+name+".pitch"),
  99.                 (float)loc.getDouble("loc."+name+".yaw"));
  100.         return loci;
  101.     }
  102.    
  103.     public void setloc(Player p, String name)
  104.     {
  105.         File f = new File(getDataFolder(), "loc.yml");
  106.         loc = YamlConfiguration.loadConfiguration(f);
  107.         loc.set("loc."+name+".world", p.getWorld().getName());
  108.         loc.set("loc."+name+".x", p.getLocation().getX());
  109.         loc.set("loc."+name+".y", p.getLocation().getY());
  110.         loc.set("loc."+name+".z", p.getLocation().getZ());
  111.         loc.set("loc."+name+".pitch", p.getLocation().getPitch());
  112.         loc.set("loc."+name+".yaw", p.getLocation().getYaw());
  113.         try {
  114.             loc.save(f);
  115.         } catch (IOException e) {
  116.             e.printStackTrace();
  117.         }
  118.     }
  119.    
  120.     @EventHandler
  121.     public void onJoin(PlayerJoinEvent e)
  122.     {
  123.         e.setJoinMessage("§b"+e.getPlayer().getName()+" зашёл на сервер");
  124.         ItemStack item = new ItemStack(Material.DIAMOND);
  125.         ItemMeta meta = item.getItemMeta();
  126.         meta.setDisplayName("§5Интерактивный алмаз");
  127.         meta.setLore(config.getStringList("mes.lore"));
  128.         item.setItemMeta(meta);
  129.         e.getPlayer().getInventory().addItem(item);
  130.         for(int i = 0; i < config.getInt("mes.count"); i++) {
  131.             e.getPlayer().sendMessage(config.getString("mes.string"));
  132.         }
  133.     }
  134.    
  135.     @EventHandler
  136.     public void onClick(PlayerInteractEvent e)
  137.     {
  138.         Action a = e.getAction();
  139.         Player p = e.getPlayer();
  140.         @SuppressWarnings("deprecation")
  141.         ItemStack itemh = p.getItemInHand();
  142.         ItemStack item = new ItemStack(Material.DIAMOND);
  143.         ItemMeta meta = item.getItemMeta();
  144.         meta.setDisplayName("§5Интерактивный алмаз");
  145.         meta.setLore(Arrays.asList("§2Нажми и что-то произойдёт"));
  146.         item.setItemMeta(meta);
  147.         if(a != Action.RIGHT_CLICK_AIR) return;
  148.         if(itemh.getType() !=Material.DIAMOND) return;
  149.         if(!itemh.getItemMeta().hasDisplayName()) return;
  150.         if(!itemh.getItemMeta().getDisplayName().equals("§5Интерактивный алмаз")) return;
  151.         if(!itemh.getItemMeta().hasLore()) return;
  152.         if(!itemh.getItemMeta().getLore().equals(Arrays.asList("§2Нажми и что-то произойдёт"))) return;
  153.         p.sendMessage("Что-то произошло!");
  154.         random(p);
  155.        
  156.     }
  157.     @SuppressWarnings("deprecation")
  158.     @EventHandler
  159.     public void onblock(PlayerInteractEvent e)
  160.     {
  161.         Action a = e.getAction();
  162.         Player p = e.getPlayer();
  163.         if(a != Action.RIGHT_CLICK_BLOCK) return;
  164.         if(p.getItemInHand().getType() == Material.AIR) return;
  165.         if(e.getClickedBlock().getType() != Material.ENDER_CHEST) return;
  166.         e.setCancelled(true);
  167.         p.playSound(p.getLocation(), Sound.ENTITY_WITHER_DEATH, 1, 1);
  168.         p.sendMessage("Нельзя");
  169.     }
  170.    
  171.     public void random(Player p)
  172.     {
  173.         Random r = new Random();
  174.         if(r.nextInt(5) <=0) return;
  175.         switch (r.nextInt(5)) {
  176.         case 1:
  177.             RandomThings.jump(p);
  178.             break;
  179.         case 2:
  180.             RandomThings.kick(p);
  181.             break;
  182.         case 3:
  183.             RandomThings.reward(p);
  184.             break;
  185.         case 4:
  186.             RandomThings.potion(p);
  187.             break;
  188.         case 5:
  189.             return;
  190.         default:
  191.             break;
  192.         }
  193.     }
  194.    
  195. }
Advertisement
Add Comment
Please, Sign In to add comment