Guest User

Кейсы (Ищите метку TODO)

a guest
Apr 7th, 2018
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.72 KB | None | 0 0
  1. package com.ss;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.ChatColor;
  5. import org.bukkit.Location;
  6. import org.bukkit.Material;
  7. import org.bukkit.Particle;
  8. import org.bukkit.Sound;
  9. import org.bukkit.block.Block;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.event.EventHandler;
  12. import org.bukkit.event.Listener;
  13. import org.bukkit.event.inventory.InventoryClickEvent;
  14. import org.bukkit.inventory.Inventory;
  15. import org.bukkit.scheduler.BukkitRunnable;
  16.  
  17. public class GUI implements Listener{
  18.     public static String colorTranslator(String mess){
  19.         mess = mess.replace("&", "\u00a7");
  20.         return mess;
  21.        
  22.     }
  23.     private static maena plugin;
  24.     public GUI(maena plugin){
  25.         this.plugin = plugin;
  26.     }
  27.     static String s = ChatColor.ITALIC + "Открыть свой кейс";
  28.     public static void openGUI(Player p){
  29.         int cases = plugin.getConfig().getInt("users." + p.getName() + ".new");
  30.         Inventory inv = Bukkit.createInventory(null, 45, s);
  31.         inv.setItem(22, GraphicInterFaceUtils.create(Material.ENDER_CHEST, 1, (byte)0,
  32.                 ChatColor.GREEN + "" + ChatColor.ITALIC + "Открыть кейс",
  33.                 ChatColor.AQUA + "Купить можно на сайте " + ChatColor.GOLD + "spokecraft.ru",
  34.                 ChatColor.GRAY + "У вас " + ChatColor.GREEN + cases + " кейсов!",ChatColor.GRAY + "-----------------"));
  35.         for(int k = 0; k <=8; k++){
  36.         inv.setItem(k, GraphicInterFaceUtils.create(Material.STAINED_GLASS_PANE, 1, (byte) 1, ChatColor.GOLD + "Покупать на сайте: " + ChatColor.GREEN + "spokecraft.ru", ChatColor.BLUE + "Это наш собственный плагин на кейсы!", null, null));
  37.         }
  38.         for(int k = 36; k <=44; k++){
  39.             inv.setItem(k, GraphicInterFaceUtils.create(Material.STAINED_GLASS_PANE, 1, (byte) 1, ChatColor.GOLD + "Покупать на сайте: " + ChatColor.GREEN + "spokecraft.ru", ChatColor.BLUE + "Это наш собственный плагин на кейсы!", null, null));
  40.         }
  41.         inv.setItem(9, GraphicInterFaceUtils.create(Material.STAINED_GLASS_PANE, 1, (byte) 2, ChatColor.GOLD + "Покупать на сайте: " + ChatColor.GREEN + "spokecraft.ru", ChatColor.BLUE + "Это наш собственный плагин на кейсы!", null, null));
  42.         inv.setItem(17, GraphicInterFaceUtils.create(Material.STAINED_GLASS_PANE, 1, (byte) 3, ChatColor.GOLD + "Покупать на сайте: " + ChatColor.GREEN + "spokecraft.ru", ChatColor.BLUE + "Это наш собственный плагин на кейсы!", null, null));
  43.        
  44.         inv.setItem(18, GraphicInterFaceUtils.create(Material.STAINED_GLASS_PANE, 1, (byte) 4, ChatColor.GOLD + "Покупать на сайте: " + ChatColor.GREEN + "spokecraft.ru", ChatColor.BLUE + "Это наш собственный плагин на кейсы!", null, null));
  45.         inv.setItem(26, GraphicInterFaceUtils.create(Material.STAINED_GLASS_PANE, 1, (byte) 5, ChatColor.GOLD + "Покупать на сайте: " + ChatColor.GREEN + "spokecraft.ru", ChatColor.BLUE + "Это наш собственный плагин на кейсы!", null, null));
  46.        
  47.         inv.setItem(27, GraphicInterFaceUtils.create(Material.STAINED_GLASS_PANE, 1, (byte) 6, ChatColor.GOLD + "Покупать на сайте: " + ChatColor.GREEN + "spokecraft.ru", ChatColor.BLUE + "Это наш собственный плагин на кейсы!", null, null));
  48.         inv.setItem(35, GraphicInterFaceUtils.create(Material.STAINED_GLASS_PANE, 1, (byte) 7, ChatColor.GOLD + "Покупать на сайте: " + ChatColor.GREEN + "spokecraft.ru", ChatColor.BLUE + "Это наш собственный плагин на кейсы!", null, null));
  49.    
  50.         p.openInventory(inv);
  51.     }
  52.     public void broadcastAboutDonateWin(String donate, Player p, int chancePrcents){
  53.         String line = "&6======================================================";
  54.         String s = "&fИгрок &9&l" + p.getName() + " &fвыбил в кейсе привелегию " + donate + "&f с шансом &a" + chancePrcents +"%, поздравим его!";
  55.         String s1 = "&fЕсли вы тоже хотите открыть кейс, купите его у нас на сайте &a&lspokecraft.ru";
  56.         line = line.replace("&", "\u00a7");
  57.         s = s.replace("&", "\u00a7");
  58.         s1 = s1.replace("&", "\u00a7");
  59.         donate.replace("&", "\u00a7");
  60.         Bukkit.broadcastMessage(line);
  61.         Bukkit.broadcastMessage(s);
  62.         Bukkit.broadcastMessage(s1);
  63.         Bukkit.broadcastMessage(line);
  64.     }
  65.     public void giveDonate(Player p, String donate){
  66.         Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user " + p.getName() + " group set " + donate);
  67.     }
  68.    
  69.    
  70.    
  71.     public static Location setDirection(Location loc, Location lookat) {
  72.         loc = loc.clone();
  73.         double dx = lookat.getX() - loc.getX();
  74.         double dy = lookat.getY() - loc.getY();
  75.         double dz = lookat.getZ() - loc.getZ();
  76.         if (dx != 0) {
  77.             if (dx < 0) {
  78.                 loc.setYaw((float) (1.5 * Math.PI));
  79.             } else {
  80.                 loc.setYaw((float) (0.5 * Math.PI));
  81.             }
  82.             loc.setYaw((float) loc.getYaw() - (float) Math.atan(dz / dx));
  83.         } else if (dz < 0) {
  84.             loc.setYaw((float) Math.PI);
  85.         }
  86.         double dxz = Math.sqrt(Math.pow(dx, 2) + Math.pow(dz, 2));
  87.         loc.setPitch((float) -Math.atan(dy / dxz));
  88.         loc.setYaw(-loc.getYaw() * 180f / (float) Math.PI);
  89.         loc.setPitch(loc.getPitch() * 180f / (float) Math.PI);
  90.         return loc;
  91.     // <3 AlexRange :3
  92.    
  93.    
  94.    
  95.     }
  96.    
  97.     @EventHandler
  98.     public void inventoryClick(InventoryClickEvent e){
  99.         Player p = (Player)e.getWhoClicked();
  100.        
  101.         if(e.getInventory().getName().equalsIgnoreCase(s)){
  102.             e.setCancelled(true);
  103.             if(e.getCurrentItem().getType() == Material.ENDER_CHEST){
  104.                 p.closeInventory();
  105.                 if(plugin.getConfig().getInt("users." + p.getName() + ".new") == 0){
  106.                     p.sendMessage(ChatColor.YELLOW + "Кейс можно преобрести у нас на сайте: " + ChatColor.GREEN + "spokecraft.ru");
  107.                     Block b = Bukkit.getWorld("world").getBlockAt(plugin.getConfig().getInt("cases.new.x"), plugin.getConfig().getInt("cases.new.y"), plugin.getConfig().getInt("cases.new.z"));
  108.                     Location loc = setDirection(b.getLocation().add(0.5,0.5,0.5), p.getLocation());
  109.                     p.setVelocity(loc.getDirection());
  110.                     return;
  111.                 } else {
  112.                     //А вот тут начинается настоящий хардкор :D
  113.                     plugin.getConfig().set("users." + p.getName() + ".new", plugin.getConfig().getInt("users." + p.getName() + ".new") - 1);
  114.                     plugin.saveConfig();
  115.                     Bukkit.broadcastMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "*" + ChatColor.WHITE +"Игрок " + ChatColor.GREEN + p.getName() + ChatColor.WHITE + " открыл кейс... Пожелаем ему удачи :3");
  116.                     Block b = Bukkit.getWorld("world").getBlockAt(plugin.getConfig().getInt("cases.new.x"), plugin.getConfig().getInt("cases.new.y"), plugin.getConfig().getInt("cases.new.z"));
  117.                     b.setType(Material.AIR);
  118.                     p.getWorld().playSound(p.getLocation(), Sound.ENTITY_CHICKEN_EGG, 1, 1);
  119.                     p.getWorld().spawnParticle(Particle.CLOUD, b.getLocation(), 25);
  120.                     Block plate = p.getWorld().getBlockAt(b.getX(), b.getY()-1, b.getZ());
  121.                     plate.setType(Material.WOOL);
  122.                     //p.setDisplayName(p.getName() + colorTranslator(" &aоткрывает кейс..."));
  123.                    
  124.                     //TODO HERE VVV (Сюда смотрите в общем ================================================
  125.                     //Кейсы в общем... А это генератор частиц, звука и дата-чейнджера...
  126.                    
  127.                     new BukkitRunnable() {
  128.                         double k = 10;
  129.                         byte task = 1;
  130.                         @SuppressWarnings("deprecation") //Все равно деприкатен ((
  131.                         @Override
  132.                         public void run() {
  133.                             if(task <= 15){
  134.                             task++;
  135.                             } else {
  136.                                 task = 1;
  137.                             }
  138.                             k -= 0.063;
  139.                             p.getWorld().spawnParticle(Particle.VILLAGER_HAPPY, b.getX()+0.5, b.getY() + k, b.getZ()+0.5, 2);
  140.                             p.getWorld().spawnParticle(Particle.CRIT_MAGIC, b.getX()+0.5, b.getY() + k, b.getZ()+0.5, 4);
  141.                             p.getWorld().playSound(p.getLocation(), Sound.BLOCK_WOOD_STEP, 10F, 0.1F);
  142.                             p.getWorld().getBlockAt(b.getX(), b.getY()-1, b.getZ());
  143.                             plate.setData(task, true);
  144.                            
  145.                            
  146.                             if(k<=0) this.cancel();
  147.                         }
  148.                     }.runTaskTimer(plugin, 0, 1);
  149.                    
  150.                     //==============================================================================================
  151.                     double vero = Math.random();
  152.                     Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { public void run() {
  153.                     for(int i = 0; i == 0; i++){
  154.                        
  155.                         //Дыра #9
  156.                     if(0.99 <= vero && vero <= 1){
  157.                         giveDonate(p, "galaxy");
  158.                         broadcastAboutDonateWin("&7&l&k|||&8&l{&1&l&o&nGALAXY&8&l}&7&l&k|||", p, 1);
  159.                         p.getWorld().playSound(p.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1, 1);
  160.                         break;
  161.                             }
  162.                         //Нейтрон #8
  163.                     if(0.97 <= vero && vero <= 0.99){
  164.                         giveDonate(p, "netron");
  165.                         broadcastAboutDonateWin("&0&f&k|&c&l{&7&l&oNeutronStar&c&l}&f&l&k|", p, 3);
  166.                         p.getWorld().playSound(p.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1, 1);
  167.                         break;
  168.                             }
  169.                     if(0.92 <= vero && vero <= 0.97){
  170.                         giveDonate(p, "quazar");
  171.                         broadcastAboutDonateWin("&a&l&o{&2&l&n&oQUAZAR&a&l&o}", p, 5);
  172.                         p.getWorld().playSound(p.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1, 1);
  173.                         break;
  174.                             }
  175.                     if(0.83 <= vero && vero <= 0.92){
  176.                         giveDonate(p, "star");
  177.                         broadcastAboutDonateWin("&f&l&o[&e&o&l&nЗВЕЗДА&f&l&o]", p, 9);
  178.                         p.getWorld().playSound(p.getLocation(), Sound.ENTITY_CAT_PURREOW, 1, 1);
  179.                         break;
  180.                             }
  181.                     if(0.74 <= vero && vero <= 0.83){
  182.                         giveDonate(p, "giant");
  183.                         broadcastAboutDonateWin("&6&l[ГИГАНТ]", p, 11);
  184.                         p.getWorld().playSound(p.getLocation(), Sound.ENTITY_CAT_PURREOW, 1, 1);
  185.                         break;
  186.                             }
  187.                     if(0.61 <= vero && vero <= 0.74){
  188.                         giveDonate(p, "planet");
  189.                         broadcastAboutDonateWin("&a[&b&lП&a&lл&b&lа&a&lн&b&lе&a&lт&b&lа&a]", p, 13);
  190.                         p.getWorld().playSound(p.getLocation(), Sound.ENTITY_CAT_PURREOW, 1, 1);
  191.                         break;
  192.                             }
  193.                     if(0.44 <= vero && vero <= 0.61){
  194.                         giveDonate(p, "sput");
  195.                         broadcastAboutDonateWin("&8[&a&lСпутник&8]", p, 16);
  196.                         p.getWorld().playSound(p.getLocation(), Sound.ENTITY_CAT_PURREOW, 1, 1);
  197.                         break;
  198.                             }
  199.                     if(0.24 <= vero && vero <= 0.44){
  200.                         giveDonate(p, "comet");
  201.                         broadcastAboutDonateWin("&3[&b&oКомета&3]", p, 20);
  202.                         p.getWorld().playSound(p.getLocation(), Sound.ENTITY_CHICKEN_EGG, 1, 1);
  203.                         break;
  204.                             }
  205.                     if(0 <= vero && vero <= 0.24){
  206.                         giveDonate(p, "asteroid");
  207.                         broadcastAboutDonateWin("&9[&c&oАстероид&9]", p, 24);
  208.                         p.getWorld().playSound(p.getLocation(), Sound.ENTITY_CHICKEN_EGG, 1, 1);
  209.                         break;
  210.                             }
  211.                    
  212.                    
  213.                         }
  214.                     }}, 20*5);
  215.                     Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { public void run() {
  216.                     p.getWorld().playSound(p.getLocation(), Sound.ENTITY_CHICKEN_EGG, 1, 1);
  217.                     p.getWorld().spawnParticle(Particle.CLOUD, b.getLocation(), 25);
  218.                     b.setType(Material.ENDER_CHEST);
  219.                     //p.setDisplayName(p.getName());
  220.                         return;
  221.                     }}, 20*8);
  222.                 }
  223.                 }
  224.             if(e.getCurrentItem().getType() == Material.STAINED_GLASS_PANE){
  225.                 p.closeInventory();
  226.                 e.setCancelled(true);
  227.                 p.sendMessage(ChatColor.GREEN + "Вы можете купить кейс на сайте " + ChatColor.YELLOW + "spokecraft.ru");
  228.                 }
  229.             }
  230.         }
  231.     }
Advertisement
Add Comment
Please, Sign In to add comment