Advertisement
Guest User

Untitled

a guest
Jan 29th, 2020
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.49 KB | None | 0 0
  1. public class BaseScene extends Scene implements Listener {
  2.     public BaseScene(ScenePlayer<?> player, int number, String name) {
  3.         super(player, number, name);
  4.         frame(new StallFrame(this));
  5.     }
  6.  
  7.     @Override
  8.     protected void startImpl() {
  9.     }
  10.  
  11.     @Override
  12.     protected void finishImpl() {
  13.     }
  14.  
  15.     @EventHandler
  16.     public void entitydamagebyentityevent(EntityDamageByEntityEvent e) {
  17.         if(e.getEntity().getType() == EntityType.PLAYER || e.getDamager().getType() != EntityType.PLAYER)
  18.             return;
  19.  
  20.         Player player = (Player) e.getDamager();
  21.  
  22.         if (player.getInventory().getItemInMainHand().getType() != Material.AIR)
  23.             return;
  24.  
  25.         e.setCancelled(true);
  26.         e.getEntity().remove();
  27.  
  28.         Location spawnLoc = e.getEntity().getLocation().clone().add(0.5, 0, 0.5);
  29.         CitizensNPC npc = (CitizensNPC) CitizensAPI.getNPCRegistry().createNPC(EntityType.PLAYER, "TBNRFrags");
  30.         npc.spawn(spawnLoc);
  31.  
  32.         CitizensNPCWrapper wrapper = new CitizensNPCWrapper(plugin(), npc);
  33.         Location eye = player.getEyeLocation();
  34.         wrapper.lookAtNow(eye);
  35.         wrapper.naturalStareAt(() -> {
  36.             if (player.isOnline())
  37.                 return new Vec3(player.getEyeLocation().getX(), player.getEyeLocation().getY(), player.getEyeLocation().getZ());
  38.             else return Vec3.v(npc.getStoredLocation().clone().add(0, 1, 0));
  39.         });
  40.     }
  41.  
  42.     @EventHandler
  43.     public void onCreeperDrop(EntityExplodeEvent e) {
  44.         if (!e.getEntityType().equals(EntityType.CREEPER)) {
  45.             return;
  46.         }
  47.  
  48.         for (Block block : e.blockList()) {
  49.             if (block.getType().equals(Material.SOUL_SAND)) {
  50.                 block.setType(Material.AIR);
  51.                 e.getEntity().getWorld().dropItemNaturally(block.getLocation(), ItemBuilder.of(Material.SOUL_SAND).setName(CC.DARK_GREEN + "TBNRBlock").setLore(CC.GRAY + "Useless Block", CC.GRAY + "Can be crafted").build());
  52.             }
  53.         }
  54.     }
  55.  
  56.     @EventHandler
  57.     public void asdf(BlockBreakEvent e){
  58.         ItemStack newItem;
  59.         if (e.getBlock().getType().equals(Material.SOUL_SAND)) {
  60.             newItem = ItemBuilder.of(Material.SOUL_SAND).setName(CC.DARK_GREEN + "TBNRBlock").setLore(CC.GRAY + "Useless Block", CC.GRAY + "Can be crafted").build();
  61.         } else if (e.getBlock().getType().equals(Material.EMERALD_ORE)) {
  62.             newItem = ItemBuilder.of(Material.EMERALD_ORE).setName(CC.DARK_GREEN + "Crystal Ore").setLore(CC.GRAY + "Pure Block", CC.GRAY + "Immune to Preston Infection").build();
  63.         } else {
  64.             return;
  65.         }
  66.         e.setCancelled(true);
  67.         e.getBlock().setType(Material.AIR);
  68.  
  69.         e.getBlock().getWorld().dropItemNaturally(e.getBlock().getLocation().clone().add(0.5, 0.5, 0.5), newItem);
  70.     }
  71.  
  72.     @EventHandler
  73.     public void interactBlock(PlayerInteractEvent e) {
  74.         if (e.getClickedBlock().getType() == Material.SOUL_SAND || e.getClickedBlock().getType() == Material.EMERALD_ORE || e.getHand() != EquipmentSlot.HAND || e.getAction() != Action.LEFT_CLICK_BLOCK) {
  75.             return;
  76.         }
  77.  
  78.         if (e.getAction() == Action.LEFT_CLICK_AIR) {
  79.             return;
  80.         }
  81.  
  82.         if (!e.getClickedBlock().isEmpty()) {
  83.             e.setCancelled(true);
  84.             e.getClickedBlock().setType(Material.SOUL_SAND);
  85.         }
  86.     }
  87.  
  88.  
  89.  
  90.     @EventHandler
  91.     public void onInteract(PlayerInteractEntityEvent e) {
  92.         System.out.println(e.getPlayer().getInventory().getItemInMainHand().getType());
  93.         if (e.getPlayer().getInventory().getItemInMainHand().getType() != Material.AIR || e.getRightClicked().getType() == EntityType.PLAYER)
  94.             return;
  95.  
  96.         e.setCancelled(true);
  97.         e.getRightClicked().remove();
  98.  
  99.         Location spawnLoc = e.getRightClicked().getLocation().clone().add(0.5, 0, 0.5);
  100.         CitizensNPC npc = (CitizensNPC) CitizensAPI.getNPCRegistry().createNPC(EntityType.PLAYER, "TBNRFrags");
  101.         npc.spawn(spawnLoc);
  102.  
  103.         CitizensNPCWrapper wrapper = new CitizensNPCWrapper(plugin(), npc);
  104.         Location eye = e.getPlayer().getEyeLocation();
  105.         wrapper.lookAtNow(eye);
  106.         wrapper.naturalStareAt(() -> {
  107.             if (e.getPlayer().isOnline())
  108.                 return new Vec3(e.getPlayer().getEyeLocation().getX(), e.getPlayer().getEyeLocation().getY(), e.getPlayer().getEyeLocation().getZ());
  109.             else return Vec3.v(npc.getStoredLocation().clone().add(0, 1, 0));
  110.         });
  111.     }
  112.  
  113.     @EventHandler
  114.     public void move(PlayerMoveEvent e){
  115.         Location l;
  116.         l = e.getPlayer().getLocation();
  117.         l.setY(l.getY() - 1);
  118.         if(e.getPlayer().getInventory().getBoots() == null && l.getBlock().getType() != Material.AIR){
  119.             l.getBlock().setType(Material.SOUL_SAND);
  120.  
  121.         }
  122.  
  123.     }
  124.  
  125.  
  126.     public World world() {
  127.         Player handle = player().handle();
  128.         return handle != null ? handle.getWorld() : null;
  129.     }
  130.  
  131.     @EventHandler
  132.     public void onFoodChange(FoodLevelChangeEvent e) {
  133.         e.setCancelled(true);
  134.         e.setFoodLevel(20);
  135.     }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement