Teleport Cooldown

Dieses Thema im Forum "Programmierung" wurde erstellt von Funzocker1, 22. April 2013.

  1. Funzocker1
    Offline

    Funzocker1

    Registriert seit:
    21. Oktober 2012
    Beiträge:
    127
    Hallo und schonmal danke :D. Ich wollte fragen wie ich am besten ein teleport Delay coden könnte.
    z.B /spawn du wirst in 3 sek. teleportier wenn du dich nicht bewegst.
    Ich dachte am Anfang ich mache einfach eine HashMap mit den Sekunden bis zum Teleport und diese werden per schedueler runter gezählt. Sollte er sich aber bewegen wird er aus der HashMap geworfen.
    So hatte ich überlegt.
    Aber wenn es einen besseren Weg gibt bitte unten rein :D
     
    #1
  2. rBxGame
    Offline

    rBxGame Ehem. Teammitglied

    Registriert seit:
    16. Februar 2012
    Beiträge:
    1.077
    Mal gegoogelt...

    Code (Text):
    1. import org.bukkit.event.EventHandler;
    2. import org.bukkit.event.Listener;
    3. import org.bukkit.event.player.PlayerJoinEvent;
    4. import org.bukkit.plugin.java.JavaPlugin;
    5. import org.bukkit.scheduler.BukkitRunnable;
    6. import org.bukkit.scheduler.BukkitTask;
    7.  
    8. public final class ExamplePlugin extends JavaPlugin {
    9.  
    10.     @Override
    11.     public void onEnable() {
    12.         new ExampleListener(this);
    13.     }
    14. }
    15.  
    16. class ExampleListener implements Listener {
    17.  
    18.     private final ExamplePlugin plugin;
    19.  
    20.     public ExampleListener(ExamplePlugin plugin) {
    21.         this.plugin = plugin;
    22.         plugin.getServer().getPluginManager().registerEvents(this, plugin);
    23.     }
    24.  
    25.     @EventHandler
    26.     public void onJoin(PlayerJoinEvent event) {
    27.         BukkitTask task = new ExampleTask(this).runTaskLater(plugin, 20);
    28.     }
    29.  
    30. }
    MFG
    rBx
     
    #2
    1 Person gefällt das.
  3. Funzocker1
    Offline

    Funzocker1

    Registriert seit:
    21. Oktober 2012
    Beiträge:
    127
    Danke

    Danke ging aber schnell :D
     
    #3
  4. Plugin00
    Offline

    Plugin00

    Registriert seit:
    3. Februar 2013
    Beiträge:
    71
    Code (Text):
    1. [CENTER]    public ArrayList<Player> TeleportListe = new ArrayList<Player>();  
    2.  
    3. public boolean onCommand(CommandSender sender, Command cmd, String commandLable, String[] args) {
    4.         final Player pl = (Player)sender;
    5.         if (!(sender instanceof Player)) {
    6.             og.info("Du kannst diesen Befehl nicht in der Console benutze!");
    7.             return true;
    8.           }
    9.        
    10.        
    11.        
    12.       if (cmd.getName().equalsIgnoreCase("home")) {
    13.            TeleportListe.add(pl);
    14.            pl.sendMessage("§a§lDu wirst in 3 Sekunden Teleportiert!");
    15.            
    16.            Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
    17.  
    18.                 @Override
    19.                 public void run() {
    20.                 if (TeleportListe.contains(pl)) {
    21.                    
    22.                  int x = plugin.getConfig().getInt("Home." + pl.getName() + ".X");
    23.                  int y = plugin.getConfig().getInt("Home." + pl.getName() + ".Y");
    24.                  int z = plugin.getConfig().getInt("Home." + pl.getName() + ".Z");
    25.                  
    26.                  int pitch = plugin.getConfig().getInt("Home." + pl.getName() + ".PITCH");
    27.                  int yaw = plugin.getConfig().getInt("Home." + pl.getName() + ".YAW");
    28.  
    29.                  String w = plugin.getConfig().getString("Home." + pl.getName() + ".W");
    30.                  World world = Bukkit.getServer().getWorld(w);
    31.                        
    32.                  
    33.                  Location loc = new Location(world, x, y, z, pitch, yaw);
    34.                  pl.teleport(loc);
    35.                  TeleportListe.remove(pl);
    36.                  pl.sendMessage("§a§lDu hast dich erfolg Reicht Teleportiert!");
    37.                  
    38.                 }  
    39.                }
    40.              }, 60);
    41.            
    42.            } else {
    43.               pl.sendMessage("§c§lDu hast noch kein Home Punkt gesetzt!");
    44.           }
    45.          
    46.      
    47.      
    48.      
    49.       if (cmd.getName().equalsIgnoreCase("sethome")) {
    50.            if (args.length == 0) {
    51.                  
    52.                int x = pl.getLocation().getBlockX();
    53.                int y = pl.getLocation().getBlockY();
    54.                int z = pl.getLocation().getBlockZ();
    55.                
    56.                float pitch = pl.getLocation().getPitch();
    57.                float yaw = pl.getLocation().getYaw();
    58.                
    59.                String w = pl.getLocation().getWorld().getName().toString();
    60.                
    61.                plugin.getConfig().set("Home." + pl.getName() + ".X", x);
    62.                plugin.getConfig().set("Home." + pl.getName() + ".Y", y);
    63.                plugin.getConfig().set("Home." + pl.getName() + ".Z", z);
    64.                plugin.getConfig().set("Home." + pl.getName() + ".W", w);
    65.                plugin.getConfig().set("Home." + pl.getName() + ".PITCH", pitch);
    66.                plugin.getConfig().set("Home." + pl.getName() + ".YAW", yaw);
    67.                plugin.saveConfig();
    68.                
    69.                pl.sendMessage("§a§lDu hast dein Home Punkt gesetzt!");
    70.           }
    71.            
    72.            if (args.length == 1) {
    73.                pl.sendMessage("§a§lDu kannst nur ein Home Punkt setzten!");
    74.           }
    75.        }[/CENTER]
    Habe ich mal gecodet, aber ob der Code noch geht ist grade dir frage..
     
    #4
  5. Funzocker1
    Offline

    Funzocker1

    Registriert seit:
    21. Oktober 2012
    Beiträge:
    127
    Danke

    Ja das is natürlich auch gut danke ^^
     
    #5