Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.parafight.rtp;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Random;
- import org.bukkit.Bukkit;
- import org.bukkit.Location;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityDamageEvent;
- import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
- import org.bukkit.event.player.PlayerMoveEvent;
- import fr.parafight.Main;
- public class RandomTp implements CommandExecutor, Listener {
- private ArrayList<String> rtpList = Main.rtpList;
- private HashMap<String, Long> cooldowns = new HashMap<String, Long>();
- int cooldownTime = 120;
- @Override
- public boolean onCommand(CommandSender sender, Command cmd, String string, String[] args) {
- if(sender instanceof Player){
- Player p = (Player)sender;
- if(cooldowns.containsKey(p.getName())){
- long secondsLeft = ((cooldowns.get(p.getName())/1000)+cooldownTime) - (System.currentTimeMillis()/1000);
- if(secondsLeft > 0) {
- p.sendMessage("§cPatientez "+ secondsLeft +" secondes pour réutiliser un RTP !");
- return false;
- }else{
- RandomTeleport(p);
- }
- }else{
- RandomTeleport(p);
- }
- }
- return false;
- }
- public void RandomTeleport(Player player){
- player.sendMessage("§a§lTéléportation !");
- player.teleport(RandomLocation());
- rtpList.add(player.getName());
- if(cooldowns.containsKey(player.getName()))
- cooldowns.remove(player.getName());
- cooldowns.put(player.getName(), System.currentTimeMillis());
- }
- public static Location RandomLocation(){
- Random r = new Random();
- double x = -14800 + r.nextInt(29600);
- double z = -14800 + r.nextInt(29600);
- double y = 200;
- Location from = new Location(Bukkit.getWorld("world"),x,y,z);
- if(Math.abs(x) < 3000 && Math.abs(z) < 3000){
- from = RandomLocation();
- }
- return from;
- }
- @EventHandler
- public void onDamage(EntityDamageEvent e){
- if(e.getEntity() instanceof Player){
- Player p = (Player)e.getEntity();
- if(rtpList.contains(p.getName())){
- if(e.getCause() == DamageCause.FALL){
- e.setCancelled(true);
- rtpList.remove(p.getName());
- }
- }
- }
- }
- @EventHandler
- public void onMove(PlayerMoveEvent e){
- Player p = e.getPlayer();
- if(rtpList.contains(p.getName())){
- if(p.isOnGround()){
- rtpList.remove(p.getName());
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement