listener y timer
unknown
java
8 months ago
2.6 kB
6
Indexable
package com.tnttag; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.Material; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.plugin.java.JavaPlugin; public class GameMechanics implements Listener { private TNTTagPlugin plugin; public GameMechanics(TNTTagPlugin plugin) { this.plugin = plugin; } @EventHandler public void onPlayerInteract(PlayerInteractEvent event) { Player player = event.getPlayer(); if (player.getInventory().getItemInMainHand().getType() == Material.TNT) { // Lógica para pasar el TNT a otro jugador passTNT(player); } } private void passTNT(Player player) { // Lógica para encontrar a otro jugador y pasarle el TNT Player target = findTarget(player); // Implementa cómo buscar un jugador cercano if (target != null) { player.sendMessage("¡Le has pasado el TNT a " + target.getName() + "!"); target.getInventory().addItem(new ItemStack(Material.TNT)); startTNTTimer(target); } } private void startTNTTimer(final Player player) { new BukkitRunnable() { int timeLeft = 10; // El TNT explota después de 10 segundos @Override public void run() { if (timeLeft == 0) { player.sendMessage("¡El TNT ha explotado!"); player.setHealth(0); // O eliminarlo de alguna forma cancel(); } else { player.sendMessage("El TNT explotará en " + timeLeft + " segundos."); timeLeft--; } } }.runTaskTimer(plugin, 0L, 20L); // Ejecuta cada segundo } private Player findTarget(Player player) { // Encuentra un jugador cercano al que pasarle el TNT (implementación simple) for (Player target : plugin.getServer().getOnlinePlayers()) { if (!target.equals(player)) { return target; } } return null; } @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); // Elimina al jugador de la lista si se va playersInGame.remove(player); } }
Editor is loading...
Leave a Comment