update
This commit is contained in:
15
.idea/jarRepositories.xml
generated
15
.idea/jarRepositories.xml
generated
@@ -6,11 +6,21 @@
|
|||||||
<option name="name" value="Central Repository" />
|
<option name="name" value="Central Repository" />
|
||||||
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
||||||
</remote-repository>
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="multiverse-public" />
|
||||||
|
<option name="name" value="multiverse-public" />
|
||||||
|
<option name="url" value="https://repo.onarandombox.com/public" />
|
||||||
|
</remote-repository>
|
||||||
<remote-repository>
|
<remote-repository>
|
||||||
<option name="id" value="sonatype" />
|
<option name="id" value="sonatype" />
|
||||||
<option name="name" value="sonatype" />
|
<option name="name" value="sonatype" />
|
||||||
<option name="url" value="https://oss.sonatype.org/content/groups/public/" />
|
<option name="url" value="https://oss.sonatype.org/content/groups/public/" />
|
||||||
</remote-repository>
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="multiverse-multiverse-releases" />
|
||||||
|
<option name="name" value="multiverse-multiverse-releases" />
|
||||||
|
<option name="url" value="https://repo.onarandombox.com/multiverse-releases" />
|
||||||
|
</remote-repository>
|
||||||
<remote-repository>
|
<remote-repository>
|
||||||
<option name="id" value="papermc-repo" />
|
<option name="id" value="papermc-repo" />
|
||||||
<option name="name" value="papermc-repo" />
|
<option name="name" value="papermc-repo" />
|
||||||
@@ -31,5 +41,10 @@
|
|||||||
<option name="name" value="enginehub" />
|
<option name="name" value="enginehub" />
|
||||||
<option name="url" value="https://maven.enginehub.org/repo/" />
|
<option name="url" value="https://maven.enginehub.org/repo/" />
|
||||||
</remote-repository>
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="onarandombox" />
|
||||||
|
<option name="name" value="onarandombox" />
|
||||||
|
<option name="url" value="https://repo.onarandombox.com/content/groups/public/" />
|
||||||
|
</remote-repository>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -45,12 +45,32 @@
|
|||||||
<id>sonatype</id>
|
<id>sonatype</id>
|
||||||
<url>https://oss.sonatype.org/content/groups/public/</url>
|
<url>https://oss.sonatype.org/content/groups/public/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>enginehub</id>
|
||||||
|
<url>https://maven.enginehub.org/repo/</url>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>multiverse-multiverse-releases</id>
|
||||||
|
<url>https://repo.onarandombox.com/multiverse-releases</url>
|
||||||
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.papermc.paper</groupId>
|
<groupId>io.papermc.paper</groupId>
|
||||||
<artifactId>paper-api</artifactId>
|
<artifactId>paper-api</artifactId>
|
||||||
<version>1.21-R0.1-SNAPSHOT</version>
|
<version>1.21.1-R0.1-SNAPSHOT</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sk89q.worldedit</groupId>
|
||||||
|
<artifactId>worldedit-bukkit</artifactId>
|
||||||
|
<version>7.3.9</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fastasyncworldedit</groupId>
|
||||||
|
<artifactId>FastAsyncWorldEdit-Bukkit</artifactId>
|
||||||
|
<version>2.13.0</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
11
pom.xml
11
pom.xml
@@ -63,6 +63,10 @@
|
|||||||
<id>enginehub</id>
|
<id>enginehub</id>
|
||||||
<url>https://maven.enginehub.org/repo/</url>
|
<url>https://maven.enginehub.org/repo/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>multiverse-multiverse-releases</id>
|
||||||
|
<url>https://repo.onarandombox.com/multiverse-releases</url>
|
||||||
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@@ -86,5 +90,12 @@
|
|||||||
<version>2.13.0</version>
|
<version>2.13.0</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mvplugins.multiverse.core</groupId>
|
||||||
|
<artifactId>multiverse-core</artifactId>
|
||||||
|
<version>5.1.2</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -104,14 +104,14 @@ public class AcceptDuelCommand implements CommandExecutor, TabCompleter {
|
|||||||
survival = true;
|
survival = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
World world = Bukkit.getWorld("world");
|
World world = Bukkit.getWorld("arenas");
|
||||||
int y = 0;
|
int y = 0;
|
||||||
int z;
|
int z;
|
||||||
|
|
||||||
if (plugin.usedArenas.isEmpty()) {
|
if (plugin.usedArenas.isEmpty()) {
|
||||||
z = -2000;
|
z = -2000;
|
||||||
} else {
|
} else {
|
||||||
z = min(plugin.usedArenas) - 1;
|
z = min(plugin.usedArenas) - 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
plugin.usedArenas.add(z);
|
plugin.usedArenas.add(z);
|
||||||
@@ -144,8 +144,6 @@ public class AcceptDuelCommand implements CommandExecutor, TabCompleter {
|
|||||||
player.setMetadata("ArenaLoc", new FixedMetadataValue(plugin, new Location(world, x, y, z)));
|
player.setMetadata("ArenaLoc", new FixedMetadataValue(plugin, new Location(world, x, y, z)));
|
||||||
enemy.setMetadata("ArenaLoc", new FixedMetadataValue(plugin, new Location(world, x, y, z)));
|
enemy.setMetadata("ArenaLoc", new FixedMetadataValue(plugin, new Location(world, x, y, z)));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
player.setMetadata("Frozen", new FixedMetadataValue(plugin, true));
|
player.setMetadata("Frozen", new FixedMetadataValue(plugin, true));
|
||||||
enemy.setMetadata("Frozen", new FixedMetadataValue(plugin, true));
|
enemy.setMetadata("Frozen", new FixedMetadataValue(plugin, true));
|
||||||
|
|
||||||
|
|||||||
37
src/main/java/lnmpro/Commands/LeaveCommand.java
Normal file
37
src/main/java/lnmpro/Commands/LeaveCommand.java
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
package lnmpro.Commands;
|
||||||
|
|
||||||
|
import lnmpro.Main;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.TabCompleter;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class LeaveCommand implements CommandExecutor, TabCompleter {
|
||||||
|
private final Main plugin;
|
||||||
|
|
||||||
|
public LeaveCommand(Main plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
|
||||||
|
if (sender instanceof Player player) {
|
||||||
|
if (player.hasMetadata("DuelingWith")) {
|
||||||
|
player.setHealth(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
}
|
||||||
34
src/main/java/lnmpro/Commands/ResetArenasCommand.java
Normal file
34
src/main/java/lnmpro/Commands/ResetArenasCommand.java
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package lnmpro.Commands;
|
||||||
|
|
||||||
|
import lnmpro.Main;
|
||||||
|
import lnmpro.Utils.WorldReset;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.TabCompleter;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ResetArenasCommand implements CommandExecutor, TabCompleter {
|
||||||
|
private final Main plugin;
|
||||||
|
|
||||||
|
public ResetArenasCommand(Main plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
|
||||||
|
WorldReset worldReset = new WorldReset(plugin);
|
||||||
|
worldReset.recreateArenaWorld();
|
||||||
|
plugin.usedArenas = new ArrayList<>();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
}
|
||||||
44
src/main/java/lnmpro/Commands/SpectateCommand.java
Normal file
44
src/main/java/lnmpro/Commands/SpectateCommand.java
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
package lnmpro.Commands;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class SpectateCommand implements CommandExecutor {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
|
||||||
|
if (!(sender instanceof Player)) {
|
||||||
|
sender.sendMessage("nem vagy jatekos ez nem cica");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = (Player) sender;
|
||||||
|
|
||||||
|
if (args.length != 1) {
|
||||||
|
player.sendMessage("§7[§9§lInsane§e§lDuels§7] §7» §cKell egy játékosnév is dumbass");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player target = Bukkit.getPlayer(args[0]);
|
||||||
|
if (target == null || !target.isOnline()) {
|
||||||
|
player.sendMessage("§7[§9§lInsane§e§lDuels§7] §7» §cA játékos jelenleg nem elérhető");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!target.hasMetadata("DuelingWith") || target.getMetadata("DuelingWith").isEmpty()) {
|
||||||
|
player.sendMessage("§7[§9§lInsane§e§lDuels§7] §7» §cEz a játékos jelenleg nincs párbajban");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
player.setGameMode(GameMode.SPECTATOR);
|
||||||
|
player.teleport(target);
|
||||||
|
player.sendMessage("§7[§9§lInsane§e§lDuels§7] §7» §aMostantól §e" + target.getName() + "§a párbaját figyeled!");
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,7 +10,6 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.title.Title;
|
import net.kyori.adventure.title.Title;
|
||||||
@@ -74,16 +73,8 @@ public class DuelEndListener implements Listener {
|
|||||||
|
|
||||||
Bukkit.getScheduler().runTaskLater(plugin, () -> {
|
Bukkit.getScheduler().runTaskLater(plugin, () -> {
|
||||||
try {
|
try {
|
||||||
Location spawn = new Location(Bukkit.getWorld("world"), 0, 3, 0, 0, 0);
|
plugin.removePlayerFromDuel(player);
|
||||||
player.setGameMode(GameMode.ADVENTURE);
|
plugin.removePlayerFromDuel(enemy);
|
||||||
enemy.setGameMode(GameMode.ADVENTURE);
|
|
||||||
player.teleport(spawn);
|
|
||||||
enemy.teleport(spawn);
|
|
||||||
|
|
||||||
Location arenaLoc = (Location) player.getMetadata("ArenaLoc").get(0).value();
|
|
||||||
Location loc1 = new Location(arenaLoc.getWorld(), arenaLoc.getX() - 36, arenaLoc.getY() - 4, arenaLoc.getZ() - 30);
|
|
||||||
Location loc2 = new Location(arenaLoc.getWorld(), arenaLoc.getX() + 36, arenaLoc.getY() + 11, arenaLoc.getZ() + 30);
|
|
||||||
schematic.removeSchematic(arenaLoc.getWorld(), loc1, loc2);
|
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
exception.printStackTrace();
|
exception.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
31
src/main/java/lnmpro/Listeners/PlayerLeaveListener.java
Normal file
31
src/main/java/lnmpro/Listeners/PlayerLeaveListener.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package lnmpro.Listeners;
|
||||||
|
|
||||||
|
import lnmpro.Main;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
import org.bukkit.metadata.MetadataValue;
|
||||||
|
|
||||||
|
public class PlayerLeaveListener implements Listener {
|
||||||
|
private final Main plugin;
|
||||||
|
|
||||||
|
public PlayerLeaveListener(Main plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
@EventHandler
|
||||||
|
public void onLeave(PlayerQuitEvent e) {
|
||||||
|
Player player = e.getPlayer();
|
||||||
|
for (String key : plugin.metadatas) {
|
||||||
|
for (MetadataValue value : player.getMetadata(key)) {
|
||||||
|
if (value.getOwningPlugin() == plugin) {
|
||||||
|
player.removeMetadata(key, plugin);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (player.hasMetadata("DuelingWith")) {
|
||||||
|
player.setHealth(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/lnmpro/Listeners/SpectatorListener.java
Normal file
17
src/main/java/lnmpro/Listeners/SpectatorListener.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package lnmpro.Listeners;
|
||||||
|
|
||||||
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||||
|
|
||||||
|
public class SpectatorListener implements Listener {
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onSpectatorTeleport(PlayerTeleportEvent event) {
|
||||||
|
if (event.getPlayer().getGameMode() == GameMode.SPECTATOR && event.getCause() == TeleportCause.SPECTATE) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,17 +1,49 @@
|
|||||||
package lnmpro;
|
package lnmpro;
|
||||||
|
|
||||||
|
import lnmpro.Utils.WorldReset;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.metadata.MetadataValue;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import lnmpro.Commands.*;
|
import lnmpro.Commands.*;
|
||||||
import lnmpro.Listeners.*;
|
import lnmpro.Listeners.*;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public final class Main extends JavaPlugin {
|
public final class Main extends JavaPlugin {
|
||||||
|
|
||||||
|
public final String[] metadatas = {"DuelingWith", "ArenaLoc", "Frozen", "DuelRequest", "DueledBy", "DueledWithGamemode"};
|
||||||
|
|
||||||
private static Main instance;
|
private static Main instance;
|
||||||
|
|
||||||
|
public void removePlayerFromDuel(Player player) {
|
||||||
|
Location spawn = new Location(Bukkit.getWorld("world"), 0, 3, 0, 0, 0);
|
||||||
|
for (PotionEffect potionEffect : player.getActivePotionEffects()) {
|
||||||
|
player.removePotionEffect(potionEffect.getType());
|
||||||
|
}
|
||||||
|
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_FALLING, 20, 1), true);
|
||||||
|
player.setHealth(20D);
|
||||||
|
player.setFoodLevel(20);
|
||||||
|
player.setSaturation(5);
|
||||||
|
player.setGameMode(GameMode.ADVENTURE);
|
||||||
|
player.teleport(spawn);
|
||||||
|
player.getInventory().clear();
|
||||||
|
for (String key : metadatas) {
|
||||||
|
for (MetadataValue value : player.getMetadata(key)) {
|
||||||
|
if (value.getOwningPlugin() == this) {
|
||||||
|
player.removeMetadata(key, this);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
getConfig().options().copyDefaults(true);
|
getConfig().options().copyDefaults(true);
|
||||||
@@ -22,15 +54,37 @@ public final class Main extends JavaPlugin {
|
|||||||
getCommand("acceptduel").setExecutor(new AcceptDuelCommand(this));
|
getCommand("acceptduel").setExecutor(new AcceptDuelCommand(this));
|
||||||
getCommand("denyduel").setExecutor(new DenyDuelCommand(this));
|
getCommand("denyduel").setExecutor(new DenyDuelCommand(this));
|
||||||
getCommand("editkit").setExecutor(new EditKitCommand(this));
|
getCommand("editkit").setExecutor(new EditKitCommand(this));
|
||||||
|
getCommand("resetarenas").setExecutor(new ResetArenasCommand(this));
|
||||||
|
getCommand("spectate").setExecutor(new SpectateCommand());
|
||||||
|
getCommand("leave").setExecutor(new LeaveCommand(this));
|
||||||
|
|
||||||
getServer().getPluginManager().registerEvents(new DuelRequestListener(this), this);
|
getServer().getPluginManager().registerEvents(new DuelRequestListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new KitListener(this), this);
|
getServer().getPluginManager().registerEvents(new KitListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new DuelEndListener(this), this);
|
getServer().getPluginManager().registerEvents(new DuelEndListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new FreezeListener(), this);
|
getServer().getPluginManager().registerEvents(new FreezeListener(), this);
|
||||||
|
getServer().getPluginManager().registerEvents(new PlayerLeaveListener(this), this);
|
||||||
|
getServer().getPluginManager().registerEvents(new SpectatorListener(), this);
|
||||||
|
|
||||||
|
WorldReset worldReset = new WorldReset(this);
|
||||||
|
worldReset.recreateArenaWorld();
|
||||||
|
|
||||||
instance = this;
|
instance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDisable() {
|
||||||
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
|
for (String key : metadatas) {
|
||||||
|
for (MetadataValue value : player.getMetadata(key)) {
|
||||||
|
if (value.getOwningPlugin() == this) {
|
||||||
|
player.removeMetadata(key, this);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static Main getInstance() {
|
public static Main getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|||||||
134
src/main/java/lnmpro/Utils/WorldReset.java
Normal file
134
src/main/java/lnmpro/Utils/WorldReset.java
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
package lnmpro.Utils;
|
||||||
|
|
||||||
|
import org.bukkit.*;
|
||||||
|
import org.bukkit.metadata.MetadataValue;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
public class WorldReset {
|
||||||
|
private Plugin plugin;
|
||||||
|
|
||||||
|
public WorldReset(Plugin plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final String[] metadatas = {"DuelingWith", "ArenaLoc", "Frozen", "DuelRequest", "DueledBy", "DueledWithGamemode"};
|
||||||
|
|
||||||
|
public boolean recreateArenaWorld() {
|
||||||
|
String worldName = "arenas";
|
||||||
|
|
||||||
|
try {
|
||||||
|
removeArenaWorld(worldName);
|
||||||
|
|
||||||
|
Bukkit.getScheduler().runTaskLater(plugin, () -> {
|
||||||
|
createArenaWorld(worldName);
|
||||||
|
}, 20L);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
plugin.getLogger().severe("Error recreating arena world: " + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean removeArenaWorld(String worldName) {
|
||||||
|
try {
|
||||||
|
World world = Bukkit.getWorld(worldName);
|
||||||
|
|
||||||
|
if (world != null) {
|
||||||
|
|
||||||
|
world.getPlayers().forEach(player -> {
|
||||||
|
Location spawn = new Location(Bukkit.getWorld("world"), 0, 3, 0, 0, 0);
|
||||||
|
for (PotionEffect potionEffect : player.getActivePotionEffects()) {
|
||||||
|
player.removePotionEffect(potionEffect.getType());
|
||||||
|
}
|
||||||
|
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_FALLING, 20, 1), true);
|
||||||
|
player.setHealth(20D);
|
||||||
|
player.setFoodLevel(20);
|
||||||
|
player.setSaturation(5);
|
||||||
|
player.setGameMode(GameMode.ADVENTURE);
|
||||||
|
player.teleport(spawn);
|
||||||
|
for (String key : metadatas) {
|
||||||
|
for (MetadataValue value : player.getMetadata(key)) {
|
||||||
|
if (value.getOwningPlugin() == plugin) {
|
||||||
|
player.removeMetadata(key, plugin);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.sendMessage("§cszia resetel a map szoval tunes");
|
||||||
|
});
|
||||||
|
|
||||||
|
boolean unloaded = Bukkit.unloadWorld(world, false);
|
||||||
|
|
||||||
|
if (unloaded) {
|
||||||
|
File worldFolder = new File(Bukkit.getWorldContainer(), worldName);
|
||||||
|
if (worldFolder.exists()) {
|
||||||
|
deleteDirectory(worldFolder);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
plugin.getLogger().warning("Failed to unload arena world.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
plugin.getLogger().severe("Error removing arena world: " + e.getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean createArenaWorld(String worldName) {
|
||||||
|
try {
|
||||||
|
WorldCreator creator = new WorldCreator(worldName)
|
||||||
|
.type(WorldType.FLAT)
|
||||||
|
.environment(World.Environment.NORMAL)
|
||||||
|
.generateStructures(false)
|
||||||
|
.generatorSettings("{\"layers\":[{\"block\":\"air\",\"height\":1}],\"biome\":\"plains\"}");
|
||||||
|
|
||||||
|
World world = creator.createWorld();
|
||||||
|
|
||||||
|
if (world != null) {
|
||||||
|
world.setSpawnFlags(false, false);
|
||||||
|
world.setTime(6000);
|
||||||
|
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false);
|
||||||
|
world.setStorm(false);
|
||||||
|
world.setThundering(false);
|
||||||
|
world.setGameRule(GameRule.DO_WEATHER_CYCLE, false);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
plugin.getLogger().severe("Failed to create arena world!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
plugin.getLogger().severe("Error creating arena world: " + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean deleteDirectory(File directory) {
|
||||||
|
if (directory.exists()) {
|
||||||
|
File[] files = directory.listFiles();
|
||||||
|
if (files != null) {
|
||||||
|
for (File file : files) {
|
||||||
|
if (file.isDirectory()) {
|
||||||
|
deleteDirectory(file);
|
||||||
|
} else {
|
||||||
|
file.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return directory.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,3 +8,7 @@ commands:
|
|||||||
acceptduel:
|
acceptduel:
|
||||||
denyduel:
|
denyduel:
|
||||||
editkit:
|
editkit:
|
||||||
|
resetarenas:
|
||||||
|
permission: insaneduels.resetarenas
|
||||||
|
spectate:
|
||||||
|
leave:
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
target/classes/lnmpro/Commands/ResetArenasCommand.class
Normal file
BIN
target/classes/lnmpro/Commands/ResetArenasCommand.class
Normal file
Binary file not shown.
BIN
target/classes/lnmpro/Commands/SpectateCommand.class
Normal file
BIN
target/classes/lnmpro/Commands/SpectateCommand.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
target/classes/lnmpro/Listeners/PlayerLeaveListener.class
Normal file
BIN
target/classes/lnmpro/Listeners/PlayerLeaveListener.class
Normal file
Binary file not shown.
BIN
target/classes/lnmpro/Listeners/SpectatorListener.class
Normal file
BIN
target/classes/lnmpro/Listeners/SpectatorListener.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
target/classes/lnmpro/Utils/WorldReset.class
Normal file
BIN
target/classes/lnmpro/Utils/WorldReset.class
Normal file
Binary file not shown.
@@ -8,3 +8,7 @@ commands:
|
|||||||
acceptduel:
|
acceptduel:
|
||||||
denyduel:
|
denyduel:
|
||||||
editkit:
|
editkit:
|
||||||
|
resetarenas:
|
||||||
|
permission: insaneduels.resetarenas
|
||||||
|
spectate:
|
||||||
|
leave:
|
||||||
@@ -1,6 +1,12 @@
|
|||||||
lnmpro/Listeners/FreezeListener.class
|
lnmpro/Listeners/FreezeListener.class
|
||||||
|
lnmpro/Listeners/PlayerLeaveListener.class
|
||||||
lnmpro/Commands/AcceptDuelCommand$1.class
|
lnmpro/Commands/AcceptDuelCommand$1.class
|
||||||
|
lnmpro/Commands/ResetArenasCommand.class
|
||||||
lnmpro/Commands/DuelCommand.class
|
lnmpro/Commands/DuelCommand.class
|
||||||
lnmpro/Listeners/DuelEndListener.class
|
lnmpro/Listeners/DuelEndListener.class
|
||||||
|
lnmpro/Commands/SpectateCommand.class
|
||||||
lnmpro/Utils/SchematicManager.class
|
lnmpro/Utils/SchematicManager.class
|
||||||
|
lnmpro/Utils/WorldReset.class
|
||||||
|
lnmpro/Listeners/SpectatorListener.class
|
||||||
|
lnmpro/Commands/LeaveCommand.class
|
||||||
lnmpro/Commands/EditKitCommand.class
|
lnmpro/Commands/EditKitCommand.class
|
||||||
|
|||||||
@@ -2,10 +2,16 @@
|
|||||||
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/DenyDuelCommand.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/DenyDuelCommand.java
|
||||||
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/DuelCommand.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/DuelCommand.java
|
||||||
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/EditKitCommand.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/EditKitCommand.java
|
||||||
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/LeaveCommand.java
|
||||||
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/ResetArenasCommand.java
|
||||||
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/SpectateCommand.java
|
||||||
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/DuelEndListener.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/DuelEndListener.java
|
||||||
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/DuelRequestListener.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/DuelRequestListener.java
|
||||||
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/FreezeListener.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/FreezeListener.java
|
||||||
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/KitListener.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/KitListener.java
|
||||||
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/PlayerLeaveListener.java
|
||||||
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/SpectatorListener.java
|
||||||
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Main.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Main.java
|
||||||
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Utils/Kits.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Utils/Kits.java
|
||||||
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Utils/SchematicManager.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Utils/SchematicManager.java
|
||||||
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Utils/WorldReset.java
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user