Advertisement
Guest User

Untitled

a guest
Feb 24th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.51 KB | None | 0 0
  1. package fr.parafight.rtp;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.Random;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.Location;
  9. import org.bukkit.command.Command;
  10. import org.bukkit.command.CommandExecutor;
  11. import org.bukkit.command.CommandSender;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15. import org.bukkit.event.entity.EntityDamageEvent;
  16. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
  17. import org.bukkit.event.player.PlayerMoveEvent;
  18.  
  19. import fr.parafight.Main;
  20.  
  21. public class RandomTp implements CommandExecutor, Listener {
  22.    
  23.     private ArrayList<String> rtpList = Main.rtpList;
  24.     private HashMap<String, Long> cooldowns = new HashMap<String, Long>();
  25.     int cooldownTime = 120;
  26.  
  27.     @Override
  28.     public boolean onCommand(CommandSender sender, Command cmd, String string, String[] args) {
  29.         if(sender instanceof Player){
  30.             Player p = (Player)sender;
  31.             if(cooldowns.containsKey(p.getName())){
  32.                 long secondsLeft = ((cooldowns.get(p.getName())/1000)+cooldownTime) - (System.currentTimeMillis()/1000);
  33.                 if(secondsLeft > 0) {
  34.                     p.sendMessage("§cPatientez "+ secondsLeft +" secondes pour réutiliser un RTP !");
  35.                     return false;
  36.                 }else{
  37.                     RandomTeleport(p);
  38.                 }
  39.             }else{
  40.                 RandomTeleport(p);
  41.             }
  42.         }
  43.         return false;
  44.     }
  45.    
  46.     public void RandomTeleport(Player player){
  47.         player.sendMessage("§a§lTéléportation !");
  48.         player.teleport(RandomLocation());
  49.         rtpList.add(player.getName());
  50.         if(cooldowns.containsKey(player.getName()))
  51.         cooldowns.remove(player.getName());
  52.         cooldowns.put(player.getName(), System.currentTimeMillis());
  53.     }
  54.  
  55.    
  56.     public static Location RandomLocation(){
  57.         Random r = new Random();
  58.         double x = -14800 + r.nextInt(29600);
  59.         double z = -14800 + r.nextInt(29600);
  60.         double y = 200;
  61.         Location from = new Location(Bukkit.getWorld("world"),x,y,z);
  62.         if(Math.abs(x) < 3000 && Math.abs(z) < 3000){
  63.             from = RandomLocation();
  64.         }
  65.         return from;
  66.     }
  67.    
  68.     @EventHandler
  69.     public void onDamage(EntityDamageEvent e){
  70.         if(e.getEntity() instanceof Player){
  71.             Player p = (Player)e.getEntity();
  72.             if(rtpList.contains(p.getName())){
  73.                 if(e.getCause() == DamageCause.FALL){
  74.                     e.setCancelled(true);
  75.                     rtpList.remove(p.getName());
  76.                 }
  77.             }
  78.         }
  79.     }
  80.    
  81.     @EventHandler
  82.     public void onMove(PlayerMoveEvent e){
  83.         Player p = e.getPlayer();
  84.         if(rtpList.contains(p.getName())){
  85.             if(p.isOnGround()){
  86.                 rtpList.remove(p.getName());
  87.             }
  88.         }
  89.     }
  90.    
  91.    
  92.    
  93.  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement