In cerca di Plugginer con esperienza

DanieleMark

Utente
4
0
Avatar DanieleMark
DanieleMark
Salve,
sono alla ricerca di un plugginer che mi aiuti a settare questo:
All'interno del mio server, allo Spawn, ho un portale che teletrasporterà i giocatori dallo Spawn al mondo di gioco. Cerco qualcuno che sia in grado di settare che ogni volta che un giocatore attraversa il portale, verrà teletrasportato ad un punto random del mondo di gioco, quando muore il giocatore avrà un nuovo punto di spawn. In parole più semplici: ogni volta che un giocatore attraversa il portale spawna in un punto random e quello sarà il suo spawnpoint finchè non muore, quando muore il suo spawnpoint cambia (sempre randomico).

⚙️ Versione: Paper 1.20.1

Cerco persone competenti e serie, non alle prime armi con lo sviluppo di server.
 

USMANQUELLODEFICENTE

Appena registrato
Utente
18
3
Eccoti una piccola bozza:
import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.Command; 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.PlayerDeathEvent; import org.bukkit.event.player.PlayerPortalEvent; import org.bukkit.plugin.java.JavaPlugin; import java.util.Random; public class RandomSpawnPlugin extends JavaPlugin implements Listener { @Override public void onEnable() { getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void onPlayerPortal(PlayerPortalEvent event) { if (event.getCause() == PlayerPortalEvent.TeleportCause.NETHER_PORTAL) { Player player = event.getPlayer(); setRandomSpawn(player); teleportToRandomSpawn(player); } } @EventHandler public void onPlayerDeath(PlayerDeathEvent event) { Player player = event.getEntity(); setRandomSpawn(player); } private void setRandomSpawn(Player player) { Location randomSpawn = generateRandomLocation(player.getWorld()); player.setBedSpawnLocation(randomSpawn, true); } private void teleportToRandomSpawn(Player player) { Location randomSpawn = player.getBedSpawnLocation(); if (randomSpawn != null) { player.teleport(randomSpawn); } } private Location generateRandomLocation(World world) { Random random = new Random(); double x = random.nextDouble() * 1000 - 500; // Adjust these values based on your world size double z = random.nextDouble() * 1000 - 500; double y = world.getHighestBlockYAt((int) x, (int) z); return new Location(world, x, y, z); } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (command.getName().equalsIgnoreCase("setrandomspawn")) { if (sender instanceof Player) { Player player = (Player) sender; setRandomSpawn(player); player.sendMessage("Random spawn location set!"); return true; } } return false; } }
 
  • Mi piace
Reactions: DanieleMark