update
This commit is contained in:
5
.idea/jarRepositories.xml
generated
5
.idea/jarRepositories.xml
generated
@@ -26,5 +26,10 @@
|
|||||||
<option name="name" value="JBoss Community repository" />
|
<option name="name" value="JBoss Community repository" />
|
||||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||||
</remote-repository>
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="enginehub" />
|
||||||
|
<option name="name" value="enginehub" />
|
||||||
|
<option name="url" value="https://maven.enginehub.org/repo/" />
|
||||||
|
</remote-repository>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
21
pom.xml
21
pom.xml
@@ -59,19 +59,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>
|
||||||
</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>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.mojang</groupId>
|
<groupId>com.sk89q.worldedit</groupId>
|
||||||
<artifactId>authlib</artifactId>
|
<artifactId>worldedit-bukkit</artifactId>
|
||||||
<version>1.5.25</version> <!-- vagy másik verzió, pl. 1.6.25 -->
|
<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>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -2,12 +2,18 @@ package lnmpro.Commands;
|
|||||||
|
|
||||||
import lnmpro.Main;
|
import lnmpro.Main;
|
||||||
import lnmpro.Utils.Kits;
|
import lnmpro.Utils.Kits;
|
||||||
|
import lnmpro.Utils.SchematicPlacer;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
@@ -26,6 +32,8 @@ public class AcceptDuelCommand implements CommandExecutor, TabCompleter {
|
|||||||
if (sender instanceof Player player) {
|
if (sender instanceof Player player) {
|
||||||
if (player.hasMetadata("DueledBy")) {
|
if (player.hasMetadata("DueledBy")) {
|
||||||
Kits kitManager = new Kits(plugin);
|
Kits kitManager = new Kits(plugin);
|
||||||
|
SchematicPlacer schematic = new SchematicPlacer(plugin);
|
||||||
|
|
||||||
UUID targetUUID = UUID.fromString(player.getMetadata("DueledBy").get(0).asString());
|
UUID targetUUID = UUID.fromString(player.getMetadata("DueledBy").get(0).asString());
|
||||||
Player enemy = Bukkit.getPlayer(targetUUID);
|
Player enemy = Bukkit.getPlayer(targetUUID);
|
||||||
String gamemode = player.getMetadata("DueledWithGamemode").get(0).asString();
|
String gamemode = player.getMetadata("DueledWithGamemode").get(0).asString();
|
||||||
@@ -33,7 +41,40 @@ public class AcceptDuelCommand implements CommandExecutor, TabCompleter {
|
|||||||
player.sendMessage("cica " + gamemode);
|
player.sendMessage("cica " + gamemode);
|
||||||
player.removeMetadata("DueledBy", plugin);
|
player.removeMetadata("DueledBy", plugin);
|
||||||
player.removeMetadata("DueledWithGamemode", plugin);
|
player.removeMetadata("DueledWithGamemode", plugin);
|
||||||
player.getInventory().setContents(kitManager.getMaceKit(player).getContents());
|
|
||||||
|
player.getInventory().clear();
|
||||||
|
enemy.getInventory().clear();
|
||||||
|
player.getInventory().setContents(kitManager.getAxeKit(player).getContents());
|
||||||
|
enemy.getInventory().setContents(kitManager.getAxeKit(player).getContents());
|
||||||
|
|
||||||
|
World world = Bukkit.getWorld("world");
|
||||||
|
int x = 1000;
|
||||||
|
int y = 0;
|
||||||
|
int z = -2000;
|
||||||
|
|
||||||
|
schematic.placeSchematic(world, x, y, z, "football");
|
||||||
|
Location playerLoc = new Location(world, x + 19.5, y + 0.5, z + 0.5, 90, 0);
|
||||||
|
Location enemyLoc = new Location(world, x - 17.5, y + 0.5, z + 0.5, -90, 0);
|
||||||
|
|
||||||
|
for (PotionEffect potionEffect : player.getActivePotionEffects()) {
|
||||||
|
player.removePotionEffect(potionEffect.getType());
|
||||||
|
}
|
||||||
|
for (PotionEffect potionEffect : enemy.getActivePotionEffects()) {
|
||||||
|
enemy.removePotionEffect(potionEffect.getType());
|
||||||
|
}
|
||||||
|
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_FALLING, 20, 1), true);
|
||||||
|
enemy.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_FALLING, 20, 1), true);
|
||||||
|
player.teleport(playerLoc);
|
||||||
|
enemy.teleport(enemyLoc);
|
||||||
|
player.setHealth(20D);
|
||||||
|
enemy.setHealth(20D);
|
||||||
|
player.setFoodLevel(20);
|
||||||
|
enemy.setFoodLevel(20);
|
||||||
|
player.setSaturation(5);
|
||||||
|
enemy.setSaturation(5);
|
||||||
|
player.setGameMode(GameMode.ADVENTURE);
|
||||||
|
enemy.setGameMode(GameMode.ADVENTURE);
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("nem vagy player nem fog sikerulni");
|
sender.sendMessage("nem vagy player nem fog sikerulni");
|
||||||
|
|||||||
@@ -27,8 +27,6 @@ public class DenyDuelCommand implements CommandExecutor, TabCompleter {
|
|||||||
UUID targetUUID = UUID.fromString(player.getMetadata("DueledBy").get(0).asString());
|
UUID targetUUID = UUID.fromString(player.getMetadata("DueledBy").get(0).asString());
|
||||||
Player enemy = Bukkit.getPlayer(targetUUID);
|
Player enemy = Bukkit.getPlayer(targetUUID);
|
||||||
String gamemode = player.getMetadata("DueledWithGamemode").get(0).asString();
|
String gamemode = player.getMetadata("DueledWithGamemode").get(0).asString();
|
||||||
enemy.sendMessage("nem cica " + gamemode);
|
|
||||||
player.sendMessage("nem cica " + gamemode);
|
|
||||||
player.removeMetadata("DueledBy", plugin);
|
player.removeMetadata("DueledBy", plugin);
|
||||||
player.removeMetadata("DueledWithGamemode", plugin);
|
player.removeMetadata("DueledWithGamemode", plugin);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package lnmpro.Commands;
|
|||||||
import lnmpro.Main;
|
import lnmpro.Main;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -18,22 +17,18 @@ import org.bukkit.inventory.meta.SkullMeta;
|
|||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import com.mojang.authlib.GameProfile;
|
|
||||||
import com.mojang.authlib.properties.Property;
|
|
||||||
import org.bukkit.profile.PlayerProfile;
|
import org.bukkit.profile.PlayerProfile;
|
||||||
import org.bukkit.profile.PlayerTextures;
|
import org.bukkit.profile.PlayerTextures;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.Collections;
|
|
||||||
|
|
||||||
public class DuelsCommand implements CommandExecutor, TabCompleter {
|
public class DuelCommand implements CommandExecutor, TabCompleter {
|
||||||
private final Main plugin;
|
private final Main plugin;
|
||||||
|
|
||||||
public DuelsCommand(Main plugin) {
|
public DuelCommand(Main plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ public final class Main extends JavaPlugin {
|
|||||||
saveDefaultConfig();
|
saveDefaultConfig();
|
||||||
saveConfig();
|
saveConfig();
|
||||||
|
|
||||||
getCommand("duel").setExecutor(new DuelsCommand(this));
|
getCommand("duel").setExecutor(new DuelCommand(this));
|
||||||
getCommand("acceptduel").setExecutor(new AcceptDuelCommand(this));
|
getCommand("acceptduel").setExecutor(new AcceptDuelCommand(this));
|
||||||
getCommand("denyduel").setExecutor(new DenyDuelCommand(this));
|
getCommand("denyduel").setExecutor(new DenyDuelCommand(this));
|
||||||
|
|
||||||
|
|||||||
@@ -228,6 +228,10 @@ public class Kits {
|
|||||||
|
|
||||||
PlayerInventory inv = player.getInventory();
|
PlayerInventory inv = player.getInventory();
|
||||||
|
|
||||||
|
ItemStack helmet = new ItemStack(Material.DIAMOND_HELMET);
|
||||||
|
ItemStack chestplate = new ItemStack(Material.DIAMOND_CHESTPLATE);
|
||||||
|
ItemStack leggings = new ItemStack(Material.DIAMOND_LEGGINGS);
|
||||||
|
ItemStack boots = new ItemStack(Material.DIAMOND_BOOTS);
|
||||||
ItemStack axe = new ItemStack(Material.DIAMOND_AXE);
|
ItemStack axe = new ItemStack(Material.DIAMOND_AXE);
|
||||||
ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
|
ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
|
||||||
ItemStack crossbow = new ItemStack(Material.CROSSBOW);
|
ItemStack crossbow = new ItemStack(Material.CROSSBOW);
|
||||||
@@ -235,6 +239,7 @@ public class Kits {
|
|||||||
ItemStack arrow = new ItemStack(Material.ARROW, 6);
|
ItemStack arrow = new ItemStack(Material.ARROW, 6);
|
||||||
ItemStack shield = new ItemStack(Material.SHIELD);
|
ItemStack shield = new ItemStack(Material.SHIELD);
|
||||||
|
|
||||||
|
inv.setArmorContents(new ItemStack[]{boots, leggings, chestplate, helmet});
|
||||||
inv.setItem(getItemSlot("axe", "axe", player), axe);
|
inv.setItem(getItemSlot("axe", "axe", player), axe);
|
||||||
inv.setItem(getItemSlot("sword", "axe", player), sword);
|
inv.setItem(getItemSlot("sword", "axe", player), sword);
|
||||||
inv.setItem(getItemSlot("crossbow", "axe", player), crossbow);
|
inv.setItem(getItemSlot("crossbow", "axe", player), crossbow);
|
||||||
|
|||||||
79
src/main/java/lnmpro/Utils/SchematicPlacer.java
Normal file
79
src/main/java/lnmpro/Utils/SchematicPlacer.java
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
package lnmpro.Utils;
|
||||||
|
|
||||||
|
import com.sk89q.worldedit.EditSession;
|
||||||
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
|
import com.sk89q.worldedit.bukkit.BukkitAdapter;
|
||||||
|
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
||||||
|
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
|
||||||
|
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats;
|
||||||
|
import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader;
|
||||||
|
import com.sk89q.worldedit.function.operation.Operation;
|
||||||
|
import com.sk89q.worldedit.function.operation.Operations;
|
||||||
|
import com.sk89q.worldedit.math.BlockVector3;
|
||||||
|
import com.sk89q.worldedit.session.ClipboardHolder;
|
||||||
|
import lnmpro.Main;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class SchematicPlacer {
|
||||||
|
private final Main plugin;
|
||||||
|
|
||||||
|
public SchematicPlacer(Main plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
public boolean placeSchematic(World world, int x, int y, int z, String schematicName) {
|
||||||
|
File schematicFile = new File(plugin.getDataFolder() + File.separator + "schematics", schematicName + ".schem");
|
||||||
|
|
||||||
|
if (!schematicFile.exists()) {
|
||||||
|
plugin.getLogger().warning("Schematic file not found: " + schematicFile.getAbsolutePath());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ClipboardFormat format = ClipboardFormats.findByFile(schematicFile);
|
||||||
|
if (format == null) {
|
||||||
|
plugin.getLogger().warning("Unknown schematic format for file: " + schematicFile.getAbsolutePath());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try (FileInputStream fis = new FileInputStream(schematicFile);
|
||||||
|
ClipboardReader reader = format.getReader(fis)) {
|
||||||
|
|
||||||
|
Clipboard clipboard = reader.read();
|
||||||
|
com.sk89q.worldedit.world.World weWorld = BukkitAdapter.adapt(world);
|
||||||
|
|
||||||
|
try (EditSession editSession = WorldEdit.getInstance().newEditSession(weWorld)) {
|
||||||
|
Operation operation = new ClipboardHolder(clipboard)
|
||||||
|
.createPaste(editSession)
|
||||||
|
.to(BlockVector3.at(x, y, z))
|
||||||
|
.ignoreAirBlocks(false)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
Operations.complete(operation);
|
||||||
|
editSession.flushSession();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
plugin.getLogger().severe("Error reading schematic file: " + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (Exception e) {
|
||||||
|
plugin.getLogger().severe("Error placing schematic: " + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean placeSchematic(Location location, String schematicName) {
|
||||||
|
return placeSchematic(
|
||||||
|
location.getWorld(),
|
||||||
|
location.getBlockX(),
|
||||||
|
location.getBlockY(),
|
||||||
|
location.getBlockZ(),
|
||||||
|
schematicName
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,2 +1 @@
|
|||||||
kits:
|
kits: {}
|
||||||
mace:
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,2 +1 @@
|
|||||||
kits:
|
kits: {}
|
||||||
mace:
|
|
||||||
Binary file not shown.
@@ -1,7 +1,2 @@
|
|||||||
lnmpro\Main.class
|
lnmpro/Utils/SchematicPlacer.class
|
||||||
lnmpro\Commands\AcceptDuelCommand.class
|
lnmpro/Commands/DuelCommand.class
|
||||||
lnmpro\Listeners\DuelRequestListener.class
|
|
||||||
lnmpro\Commands\DenyDuelCommand.class
|
|
||||||
lnmpro\Listeners\KitListener.class
|
|
||||||
lnmpro\Commands\DuelsCommand.class
|
|
||||||
lnmpro\Utils\Kits.class
|
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
E:\InsaneDuels\InsaneDuels\src\main\java\lnmpro\Commands\AcceptDuelCommand.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/AcceptDuelCommand.java
|
||||||
E:\InsaneDuels\InsaneDuels\src\main\java\lnmpro\Commands\DenyDuelCommand.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/DenyDuelCommand.java
|
||||||
E:\InsaneDuels\InsaneDuels\src\main\java\lnmpro\Commands\DuelsCommand.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/DuelCommand.java
|
||||||
E:\InsaneDuels\InsaneDuels\src\main\java\lnmpro\Listeners\DuelRequestListener.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/DuelRequestListener.java
|
||||||
E:\InsaneDuels\InsaneDuels\src\main\java\lnmpro\Listeners\KitListener.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/KitListener.java
|
||||||
E:\InsaneDuels\InsaneDuels\src\main\java\lnmpro\Main.java
|
/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Main.java
|
||||||
E:\InsaneDuels\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/SchematicPlacer.java
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user