Advertisement
TheMagzuz

PlayerListener

Dec 15th, 2015
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.90 KB | None | 0 0
  1. package me.themagzuz;
  2.  
  3. import java.math.BigDecimal;
  4. import java.text.ParseException;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import java.util.UUID;
  8.  
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.Location;
  11. import org.bukkit.OfflinePlayer;
  12. import org.bukkit.World;
  13. import org.bukkit.block.Sign;
  14. import org.bukkit.entity.Player;
  15. import org.bukkit.event.EventHandler;
  16. import org.bukkit.event.Listener;
  17. import org.bukkit.event.block.Action;
  18. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  19. import org.bukkit.event.entity.EntityDamageEvent;
  20. import org.bukkit.event.entity.PlayerDeathEvent;
  21. import org.bukkit.event.player.PlayerInteractEvent;
  22. import org.bukkit.event.player.PlayerJoinEvent;
  23. import org.bukkit.event.player.PlayerRespawnEvent;
  24. import org.bukkit.inventory.Inventory;
  25. import org.bukkit.inventory.ItemStack;
  26. import org.bukkit.inventory.PlayerInventory;
  27.  
  28.  
  29. public class PlayerListener implements Listener{
  30.    
  31.     public PlayerListener(SlimeSlap plugin){
  32.         plugin.getServer().getPluginManager().registerEvents(this, plugin);
  33.     }
  34.    
  35.     @EventHandler
  36.     public void OnPlayerJoin(PlayerJoinEvent e){
  37.         Player player = (Player) e.getPlayer();
  38.        
  39.         SlimeSlap.perms.playerAdd(player, "SlimeSlap.Signs.Create.Sell");
  40.         if (!SlimeSlap.HasSlimeSlapPlayer(player.getUniqueId())){
  41.             SlimeSlap.pl.getLogger().info(player.getName() + " does not have a SlimeSlapPlayer instance. Creating one");
  42.             SlimeSlap.players.add(new SlimeSlapPlayer(e.getPlayer().getUniqueId()));
  43.             SlimeSlap.pl.getLogger().info("Created a SlimeSlapPlayer instance for " + player.getName());
  44.         }
  45.     }
  46.    
  47.     /*@EventHandler
  48.     public void OnPlayerDeath(PlayerDeathEvent e){
  49.         Player killed = (Player) e.getEntity();
  50.         Player killer;
  51.         Integer toGive = SlimeSlap.getTickets(killed);
  52.         killed.sendMessage(killed.getKiller().getType().toString());
  53.         if(killed.getKiller().getType().equals(killed.getType())){
  54.             killer = (Player) e.getEntity().getKiller();
  55.        
  56.         if (SlimeSlap.HasSlimeSlapPlayer(killed) && SlimeSlap.HasSlimeSlapPlayer(killer) && killer != null && killed != null){
  57.            
  58.             SlimeSlapPlayer killedSS = SlimeSlapPlayer.getSlimeSlapPlayer(killed);
  59.             SlimeSlapPlayer killerSS = SlimeSlapPlayer.getSlimeSlapPlayer(killer);
  60.             if (killerSS.getInSlimeSlap() && killedSS.getInSlimeSlap()){
  61.                     e.getDrops().clear();
  62.                     e.getDrops().add(SlimeSlap.killTicket);
  63.                     for (int i = 0; i < toGive; i++){
  64.                             e.getDrops().add(SlimeSlap.killTicket);
  65.                    
  66.                     }
  67.                     for (int i = 0; i < e.getDrops().size(); i++){
  68.                         killer.getInventory().addItem(e.getDrops().get(i));
  69.                     }
  70.                     e.getDrops().clear();
  71.                     Double x, y, z;
  72.                     try{
  73.                     x =(Double)SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Spawn.x"));
  74.                     y =(Double) SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Spawn.y"));
  75.                     z = (Double) SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Spawn.z"));
  76.                     } catch(ParseException er){
  77.                         killed.sendMessage("§cSome of the coordinates to the spawn are not numbers! Contact the server admin immidiatly!");
  78.                         return;
  79.                     }
  80.                     Location loc = new Location(SlimeSlap.GetWorldByName(SlimeSlap.pl.getConfig().getString("World")), x, y, z);
  81.                     killed.setHealth(20.0);
  82.                     killed.teleport(loc);
  83.                 }
  84.             }
  85.         }
  86.     }*/
  87.    
  88.     @EventHandler
  89.     public void OnEntityDamage(EntityDamageByEntityEvent e){
  90.         if (e.getEntity() instanceof Player && e.getDamager() instanceof Player){
  91.             Player damaged = (Player) e.getEntity();
  92.             Player damager = (Player) e.getDamager();
  93.            
  94.             UUID damagedID = damager.getUniqueId();
  95.             UUID damagerID = damaged.getUniqueId();
  96.            
  97.             if (SlimeSlap.HasSlimeSlapPlayer(damagedID) && SlimeSlap.HasSlimeSlapPlayer(damagerID)){
  98.                 SlimeSlapPlayer ssKiller = SlimeSlapPlayer.getSlimeSlapPlayer(damagerID);
  99.                 SlimeSlapPlayer ssKilled = SlimeSlapPlayer.getSlimeSlapPlayer(damagerID);
  100.                 if (ssKiller.getInSlimeSlap() && ssKilled.getInSlimeSlap()){
  101.                     ssKilled.SetLastDamage(damager.getUniqueId());
  102.                 }
  103.                
  104.             }
  105.                
  106.             if (damaged.getHealth() - e.getDamage() < 1){
  107.                
  108.                 if (SlimeSlap.HasSlimeSlapPlayer(damaged) && SlimeSlap.HasSlimeSlapPlayer(damager)){
  109.                     SlimeSlapPlayer killed = SlimeSlapPlayer.getSlimeSlapPlayer(damagedID);
  110.                     SlimeSlapPlayer killer = SlimeSlapPlayer.getSlimeSlapPlayer(damagerID);
  111.                     if(killed.getInSlimeSlap() && killer.getInSlimeSlap()){
  112.                         killed.SetLastDamage(damager.getUniqueId());
  113.                         SlimeSlap.HandlePlayerDeath(damaged.getUniqueId(), killed, damager.getUniqueId(), killer);
  114.                        
  115.                         e.setCancelled(true);
  116.                     }
  117.                 }
  118.             }
  119.            
  120.         }
  121.     }
  122.    
  123.     @EventHandler
  124.     public void OnEntityDamage(EntityDamageEvent e){
  125.         if (e.getEntity() instanceof Player){
  126.            
  127.             Player player = (Player) e.getEntity();
  128.            
  129.             SlimeSlapPlayer ss;
  130.            
  131.             if (SlimeSlap.HasSlimeSlapPlayer(player.getUniqueId())){
  132.                 ss = SlimeSlapPlayer.getSlimeSlapPlayer(player.getUniqueId());
  133.             } else {
  134.                 ss = new SlimeSlapPlayer (player.getUniqueId());
  135.                
  136.             }
  137.            
  138.             player.sendMessage(SlimeSlap.DOUBLE_DECIMAL.format(player.getHealth() - e.getDamage()));
  139.                     if (ss.GetLastDamage() != null){
  140.                        
  141.                         if (player.getHealth() - e.getDamage() < 1){
  142.                             player.sendMessage("The error is probably in the player death handler");
  143.                             SlimeSlap.HandlePlayerDeath(player.getUniqueId(), ss, ss.getLastDamager(), SlimeSlapPlayer.getSlimeSlapPlayer(ss.getLastDamager()));
  144.                         }
  145.                     } else return;
  146.                 }
  147.                
  148.             }
  149.            
  150.        
  151.    
  152.    
  153.     /*@EventHandler
  154.     public void OnPlayerRespawn(PlayerRespawnEvent e){
  155.         Player player = e.getPlayer();
  156.         SlimeSlapPlayer ss = SlimeSlapPlayer.getSlimeSlapPlayer(player);
  157.         if (ss != null && ss.getInSlimeSlap()){
  158.             Double x, y, z;
  159.             try{
  160.             x =(Double)SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Spawn.x"));
  161.             y =(Double) SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Spawn.y"));
  162.             z = (Double) SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Spawn.z"));
  163.             } catch(ParseException er){
  164.                 player.sendMessage("§cSome of the coordinates to the spawn are not numbers! Contact the server admin immidiatly!");
  165.                 return;
  166.             }
  167.             Location loc = new Location(SlimeSlap.GetWorldByName(SlimeSlap.pl.getConfig().getString("World")), x, y, z);
  168.             e.setRespawnLocation(loc);
  169.             player.teleport(loc);
  170.         }
  171.     }*/
  172.    
  173.     @EventHandler
  174.     public void OnBlockRightClick(PlayerInteractEvent e){
  175.         if (e.getAction() == Action.RIGHT_CLICK_BLOCK){
  176.             Player player = (Player) e.getPlayer();
  177.             if (e.getClickedBlock().getState() instanceof Sign){
  178.                
  179.                
  180.                
  181.                 Sign sign = (Sign) e.getClickedBlock().getState();
  182.                
  183.                 if(sign.getLine(0).equalsIgnoreCase("§6[Ticket]")){
  184.                     int toGive = 0;
  185.                     int reward;
  186.                     double bonus = SlimeSlap.pl.getConfig().getDouble("Bonus");
  187.  
  188.                     int tickets = SlimeSlap.getTickets(player);
  189.                     reward = Integer.parseInt(sign.getLine(1).substring(4, sign.getLine(1).length()));
  190.                     toGive+=tickets*reward;
  191.  
  192.                     SlimeSlap.removeTickets(player);
  193.                    
  194.                     if (bonus != 0){
  195.                         toGive += bonus;
  196.                     }
  197.                    
  198.                     if (toGive > 0){
  199.                    
  200.                     player.sendMessage(String.format(ChatColor.GREEN + "Traded in %s tickets for $%s", String.valueOf(tickets), SlimeSlap.DOUBLE_DECIMAL.format(toGive)));
  201.                     } else player.sendMessage("§cYou don't have any tickets!");
  202.                     if (bonus != 0 && toGive > 0){
  203.                         player.sendMessage(ChatColor.AQUA + String.format("You were given $%s as a bonus", SlimeSlap.DOUBLE_DECIMAL.format(bonus)));
  204.                     }
  205.                     SlimeSlap.AddMoney(player, toGive);
  206.                 } else if (sign.getLine(0).equalsIgnoreCase(ChatColor.AQUA + "[SlimeSlap]")){
  207.                     if (sign.getLine(1).equalsIgnoreCase(ChatColor.GREEN + "Join")){   
  208.                         double x, y, z;
  209.                         try {
  210.                             x = (double) SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Arena.x")).doubleValue();
  211.                             y= (double) SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Arena.y")).doubleValue();
  212.                             z= (double) SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Arena.z")).doubleValue();
  213.                         } catch(ParseException er){
  214.                             player.sendMessage("§cSome of the coordinates to the arena are not numbers! Contact the server admin immidiately!");
  215.                             return;
  216.                         }
  217.                         Location loc = new Location(player.getWorld(), x, y, z);
  218.                         player.teleport(loc);
  219.                         SlimeSlapPlayer.getSlimeSlapPlayer(player.getUniqueId()).setInSlimeSlap(true);
  220.                         player.sendMessage(ChatColor.GREEN + "Joined Slime Slap!");
  221.                         player.getInventory().addItem(SlimeSlap.SlimeSlapper);
  222.                     } else if (sign.getLine(1).equalsIgnoreCase(ChatColor.GREEN + "Leave")){
  223.                         if (SlimeSlapPlayer.getSlimeSlapPlayer(player.getUniqueId()).getInSlimeSlap()){
  224.                             double x, y, z;
  225.                             World world;
  226.                             try {
  227.                                 x = (double) SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Spawn.x")).doubleValue();
  228.                                 y= (double) SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Spawn.y")).doubleValue();
  229.                                 z= (double) SlimeSlap.DOUBLE_DECIMAL.parse(SlimeSlap.pl.getConfig().getString("Spawn.z")).doubleValue();
  230.                                 world = SlimeSlap.GetWorldByName(SlimeSlap.pl.getConfig().getString("World"));
  231.                             } catch(ParseException er){
  232.                                 player.sendMessage("§cSome of the coordinates to the arena are not numbers! Contact the server admin immidiately!");
  233.                                 return;
  234.                             }
  235.                        
  236.                             Location loc;
  237.                        
  238.                             if (world != null){
  239.                                 loc = new Location(world, x, y, z);
  240.                             } else {
  241.                                 player.sendMessage(String.format("§cThe world \'%s\' does not exist", SlimeSlap.pl.getConfig().getString("World")));
  242.                                 return;
  243.                             }
  244.                        
  245.                             player.teleport(loc);
  246.                             player.getInventory().remove(SlimeSlap.SlimeSlapper);
  247.                             SlimeSlapPlayer.getSlimeSlapPlayer(player.getUniqueId()).setInSlimeSlap(false);
  248.                         } else player.sendMessage("§cYou are not in Slime Slap!");
  249.                     }
  250.                 }
  251.             }
  252.         }
  253.     }
  254.    
  255.  
  256.    
  257.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement