This commit is contained in:
2025-09-23 18:05:45 +02:00
parent fa093731df
commit 8373cacc5f
2 changed files with 17 additions and 27 deletions

View File

@@ -218,7 +218,11 @@ public class PlayerDeathListener implements Listener {
} else if (plugin.playersInFfa.contains(player)) { } else if (plugin.playersInFfa.contains(player)) {
plugin.tpToSpawn(player); plugin.tpToSpawn(player);
plugin.playersInFfa.remove(player); plugin.playersInFfa.remove(player);
e.setDeathMessage("§c" + player.getName() + " §7meghalt §c" + e.getEntity().getKiller() + " §7által"); if (player.getKiller() != null) {
e.setDeathMessage("§c" + player.getName() + " §7meghalt §c" + player.getKiller() + " §7által");
} else {
e.setDeathMessage("");
}
} else { } else {
e.setCancelled(true); e.setCancelled(true);
plugin.tpToSpawn(player); plugin.tpToSpawn(player);

View File

@@ -2,8 +2,10 @@ package hu.jgj52.pvpcore.Utils;
import hu.jgj52.pvpcore.Main; import hu.jgj52.pvpcore.Main;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.generator.ChunkGenerator;
import java.io.File; import java.io.File;
import java.util.Random;
public class WorldReset { public class WorldReset {
private Main plugin; private Main plugin;
@@ -14,16 +16,12 @@ public class WorldReset {
public boolean recreateArenaWorld() { public boolean recreateArenaWorld() {
String worldName = "arenas"; String worldName = "arenas";
try { try {
removeArenaWorld(worldName); removeArenaWorld(worldName);
Bukkit.getScheduler().runTaskLater(plugin, () -> { Bukkit.getScheduler().runTaskLater(plugin, () -> {
createArenaWorld(worldName); createArenaWorld(worldName);
}, 20L); }, 20L);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
plugin.getLogger().severe("Error recreating arena world: " + e.getMessage()); plugin.getLogger().severe("Error recreating arena world: " + e.getMessage());
e.printStackTrace(); e.printStackTrace();
@@ -34,22 +32,17 @@ public class WorldReset {
private boolean removeArenaWorld(String worldName) { private boolean removeArenaWorld(String worldName) {
try { try {
World world = Bukkit.getWorld(worldName); World world = Bukkit.getWorld(worldName);
if (world != null) { if (world != null) {
world.getPlayers().forEach(player -> { world.getPlayers().forEach(player -> {
plugin.tpToSpawn(player); plugin.tpToSpawn(player);
player.sendMessage("§cszia resetel a map szoval tunes"); player.sendMessage("§cszia resetel a map szoval tunes");
}); });
boolean unloaded = Bukkit.unloadWorld(world, false); boolean unloaded = Bukkit.unloadWorld(world, false);
if (unloaded) { if (unloaded) {
File worldFolder = new File(Bukkit.getWorldContainer(), worldName); File worldFolder = new File(Bukkit.getWorldContainer(), worldName);
if (worldFolder.exists()) { if (worldFolder.exists()) {
deleteDirectory(worldFolder); deleteDirectory(worldFolder);
} }
return true; return true;
} else { } else {
plugin.getLogger().warning("Failed to unload arena world."); plugin.getLogger().warning("Failed to unload arena world.");
@@ -71,9 +64,7 @@ public class WorldReset {
.environment(World.Environment.NORMAL) .environment(World.Environment.NORMAL)
.generateStructures(false) .generateStructures(false)
.generatorSettings("{\"layers\":[{\"block\":\"air\",\"height\":1}],\"biome\":\"plains\"}"); .generatorSettings("{\"layers\":[{\"block\":\"air\",\"height\":1}],\"biome\":\"plains\"}");
World world = creator.createWorld(); World world = creator.createWorld();
if (world != null) { if (world != null) {
world.setSpawnFlags(false, false); world.setSpawnFlags(false, false);
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false); world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false);
@@ -86,7 +77,6 @@ public class WorldReset {
plugin.getLogger().severe("Failed to create arena world!"); plugin.getLogger().severe("Failed to create arena world!");
return false; return false;
} }
} catch (Exception e) { } catch (Exception e) {
plugin.getLogger().severe("Error creating arena world: " + e.getMessage()); plugin.getLogger().severe("Error creating arena world: " + e.getMessage());
e.printStackTrace(); e.printStackTrace();
@@ -96,7 +86,6 @@ public class WorldReset {
public boolean recreateFfaWorld() { public boolean recreateFfaWorld() {
String worldName = "ffa"; String worldName = "ffa";
try { try {
if (!removeFfaWorld(worldName)) { if (!removeFfaWorld(worldName)) {
plugin.getLogger().warning("Failed to remove FFA world!"); plugin.getLogger().warning("Failed to remove FFA world!");
@@ -106,9 +95,7 @@ public class WorldReset {
Bukkit.getScheduler().runTaskLater(plugin, () -> { Bukkit.getScheduler().runTaskLater(plugin, () -> {
createFfaWorld(worldName); createFfaWorld(worldName);
}, 100L); }, 100L);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
plugin.getLogger().severe("Error recreating FFA world: " + e.getMessage()); plugin.getLogger().severe("Error recreating FFA world: " + e.getMessage());
e.printStackTrace(); e.printStackTrace();
@@ -116,26 +103,20 @@ public class WorldReset {
} }
} }
private boolean removeFfaWorld(String worldName) { private boolean removeFfaWorld(String worldName) {
try { try {
World world = Bukkit.getWorld(worldName); World world = Bukkit.getWorld(worldName);
if (world != null) { if (world != null) {
world.getPlayers().forEach(player -> { world.getPlayers().forEach(player -> {
plugin.tpToSpawn(player); plugin.tpToSpawn(player);
player.sendMessage("§cszia resetel a map szoval tunes"); player.sendMessage("§cszia resetel a map szoval tunes");
}); });
boolean unloaded = Bukkit.unloadWorld(world, false); boolean unloaded = Bukkit.unloadWorld(world, false);
if (unloaded) { if (unloaded) {
File worldFolder = new File(Bukkit.getWorldContainer(), worldName); File worldFolder = new File(Bukkit.getWorldContainer(), worldName);
if (worldFolder.exists()) { if (worldFolder.exists()) {
deleteDirectory(worldFolder); deleteDirectory(worldFolder);
} }
return true; return true;
} else { } else {
plugin.getLogger().warning("Failed to unload arena world."); plugin.getLogger().warning("Failed to unload arena world.");
@@ -153,10 +134,9 @@ public class WorldReset {
private boolean createFfaWorld(String worldName) { private boolean createFfaWorld(String worldName) {
try { try {
WorldCreator creator = new WorldCreator(worldName) WorldCreator creator = new WorldCreator(worldName)
.environment(World.Environment.NORMAL); .environment(World.Environment.NORMAL)
.generator(new VoidGenerator());
World world = creator.createWorld(); World world = creator.createWorld();
if (world != null) { if (world != null) {
world.setSpawnFlags(false, false); world.setSpawnFlags(false, false);
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false); world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false);
@@ -172,7 +152,6 @@ public class WorldReset {
plugin.getLogger().severe("Failed to create arena world!"); plugin.getLogger().severe("Failed to create arena world!");
return false; return false;
} }
} catch (Exception e) { } catch (Exception e) {
plugin.getLogger().severe("Error creating arena world: " + e.getMessage()); plugin.getLogger().severe("Error creating arena world: " + e.getMessage());
e.printStackTrace(); e.printStackTrace();
@@ -195,4 +174,11 @@ public class WorldReset {
} }
return directory.delete(); return directory.delete();
} }
public static class VoidGenerator extends ChunkGenerator {
@Override
public ChunkData generateChunkData(World world, Random random, int chunkX, int chunkZ, BiomeGrid biome) {
return createChunkData(world);
}
}
} }