diff --git a/build.gradle b/build.gradle index 2dc78d9..a926830 100644 --- a/build.gradle +++ b/build.gradle @@ -14,6 +14,7 @@ repositories { url = uri('https://jitpack.io') } maven { + name = "PaperMc" url = uri('https://papermc.io/repo/repository/maven-public/') } maven { @@ -27,6 +28,7 @@ repositories { url = uri('https://repo.dmulloy2.net/repository/public/') } maven { + name = "EssentialsX" url = uri('https://repo.essentialsx.net/releases/') } maven { @@ -36,9 +38,11 @@ repositories { url = uri('https://repo.maven.apache.org/maven2/') } maven { + name = "PlaceHolderApi" url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' } maven { + name = "Citizens" url = 'https://repo.citizensnpcs.co/' } maven { @@ -58,7 +62,7 @@ dependencies { implementation 'org.mongodb:bson:4.7.2' implementation 'org.mongodb:mongodb-driver-core:4.7.2' - implementation 'de.tr7zw:item-nbt-api-plugin:2.10.0' + implementation 'de.tr7zw:item-nbt-api-plugin:2.11.1' compileOnly 'io.papermc.paper:paper-api:1.19.3-R0.1-SNAPSHOT' compileOnly 'com.comphenix.protocol:ProtocolLib:4.8.0' compileOnly 'net.luckperms:api:5.4' @@ -67,10 +71,13 @@ dependencies { //compileOnly 'com.fastasyncworldedit:FastAsyncWorldEdit-Core:2.3.0' //compileOnly 'com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit:2.3.0' compileOnly 'me.clip:placeholderapi:2.11.2' - //compileOnly 'net.citizensnpcs:citizens-main:2.0.30-SNAPSHOT' + compileOnly('net.citizensnpcs:citizens-main:2.0.30-SNAPSHOT') { + exclude group: '*', module: '*' + } compileOnly 'com.onarandombox.multiversecore:Multiverse-Core:4.3.1' + compileOnly 'me.filoghost.holographicdisplays:holographicdisplays-api:3.0.0' compileOnly fileTree(dir: 'libs', include: '*.jar') - paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:1.19.2-R0.1-SNAPSHOT") + paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:1.19.3-R0.1-SNAPSHOT") } group = 'me.unurled' @@ -103,7 +110,7 @@ tasks { shadowJar { dependencies { - include dependency('de.tr7zw:item-nbt-api-plugin:2.10.0') + include dependency('de.tr7zw:item-nbt-api-plugin:2.11.1') include dependency('org.mongodb:mongodb-driver-sync:4.7.2') include dependency('org.mongodb:bson:4.7.2') include dependency('org.mongodb:mongodb-driver-core:4.7.2') diff --git a/src/main/java/me/unurled/raxen/Raxen.java b/src/main/java/me/unurled/raxen/Raxen.java index baa0654..4c3a04a 100644 --- a/src/main/java/me/unurled/raxen/Raxen.java +++ b/src/main/java/me/unurled/raxen/Raxen.java @@ -95,7 +95,7 @@ public final class Raxen extends JavaPlugin { * getter for the logger * @return the plugin logger */ - public static Logger getPluginLogger() { + public Logger getPluginLogger() { return logger; } @@ -111,7 +111,7 @@ public final class Raxen extends JavaPlugin { * return the instance which is launched. * @return main instance */ - public static Raxen getPlugin() { + public Raxen getPlugin() { return plugin; } @@ -127,7 +127,7 @@ public final class Raxen extends JavaPlugin { * getter for the yml's player configs. * @return player config instance */ - public static PlayerConfig getPlayerConfig() { + public PlayerConfig getPlayerConfig() { return playerConfig; } @@ -135,7 +135,11 @@ public final class Raxen extends JavaPlugin { * getter for an instance of the config utility class * @return raxen's config */ - public static Config getConf() { + public Config getConf() { return config; } + + public void disable() { + this.setEnabled(false); + } } diff --git a/src/main/java/me/unurled/raxen/commands/admin/NbtCommand.java b/src/main/java/me/unurled/raxen/commands/admin/NbtCommand.java index 42c7c01..a4d339d 100644 --- a/src/main/java/me/unurled/raxen/commands/admin/NbtCommand.java +++ b/src/main/java/me/unurled/raxen/commands/admin/NbtCommand.java @@ -45,12 +45,12 @@ public class NbtCommand implements TabExecutor { switch (args.length) { case 0, 1 -> msgPlayer(player, colorTextComp("You must specify an nbt and an int.")); case 2 -> { - debug(main, "'" + args[0] + "'", "'" + args[1] + "'"); + debug("'" + args[0] + "'", "'" + args[1] + "'"); ItemStack it = player.getInventory().getItemInMainHand(); NBTItem nbti = new NBTItem(it); int a = 0; - if (nbti.hasKey(args[1])) { - a = nbti.getInteger(args[1]); + if (nbti.hasTag(args[0])) { + a = nbti.getInteger(args[0]); } List lore = new ArrayList<>(); // ItemMeta itm = it.getItemMeta(); @@ -78,17 +78,17 @@ public class NbtCommand implements TabExecutor { // it.setItemMeta(itm); PlayerManager pm = ((Raxen) Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("Raxen"))).getManager().getPlayerManager(); nbti.setInteger(args[0], Integer.parseInt(args[1]) + a); - if (nbti.hasKey("SPEED")) { + if (nbti.hasTag("SPEED")) { pm.getSpeed().add(player, nbti.getInteger("SPEED")); } - if (nbti.hasKey("HEALTH")) { + if (nbti.hasTag("HEALTH")) { pm.getHealth().add(player, nbti.getInteger("HEALTH")); } - if (nbti.hasKey("DEFENSE")) { + if (nbti.hasTag("DEFENSE")) { pm.getDefense().add(player, nbti.getInteger("DEFENSE")); } - if (nbti.hasKey("STRENGTH")) { + if (nbti.hasTag("STRENGTH")) { pm.getStrength().add(player, nbti.getInteger("STRENGTH")); } it = nbti.getItem(); diff --git a/src/main/java/me/unurled/raxen/commands/admin/TestHoloCommand.java b/src/main/java/me/unurled/raxen/commands/admin/TestHoloCommand.java new file mode 100644 index 0000000..928500c --- /dev/null +++ b/src/main/java/me/unurled/raxen/commands/admin/TestHoloCommand.java @@ -0,0 +1,67 @@ +package me.unurled.raxen.commands.admin; + +import me.unurled.raxen.Raxen; +import me.unurled.raxen.utils.Utils; +import net.kyori.adventure.text.TextComponent; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabExecutor; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class TestHoloCommand implements TabExecutor { + + private Raxen main; + + public TestHoloCommand(Raxen main) { + this.main = main; + } + + /** + * @param sender Source of the command + * @param command Command which was executed + * @param label Alias of the command which was used + * @param args Passed command arguments + * @return + */ + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if (sender instanceof Player player) { + if (player.hasPermission("raxen.testholo.cmd")) { + // spawn a hologram + if (args.length > 0) { + if (args[0].equalsIgnoreCase("text")) { + main.getManager().getLibsManager().getHolographicDisplay().createHologram("test holo", player.getLocation().add(0.0, 2.0, 0.0)); + } else if (args[0].equalsIgnoreCase("item")) { + main.getManager().getLibsManager().getHolographicDisplay().createHologram(player.getInventory().getItemInMainHand(), player.getLocation().add(0.0, 2.0, 0.0)); + } + } else { + Utils.msgPlayer(player, "You need to use the correct syntax :", "/" + label + " [text | item]"); + } + } else { + Utils.msgPlayer(player, (TextComponent) Utils.noPerms()); + } + } else { + Utils.errorConsoleSender(sender); + } + return true; + } + + /** + * @param sender Source of the command. For players tab-completing a + * command inside of a command block, this will be the player, not + * the command block. + * @param command Command which was executed + * @param label Alias of the command which was used + * @param args The arguments passed to the command, including final + * partial argument to be completed + * @return + */ + @Override + public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + return null; + } +} diff --git a/src/main/java/me/unurled/raxen/components/entity/Attributes/Attribute.java b/src/main/java/me/unurled/raxen/components/entity/Attributes/Attribute.java index 2e465da..64de2d7 100644 --- a/src/main/java/me/unurled/raxen/components/entity/Attributes/Attribute.java +++ b/src/main/java/me/unurled/raxen/components/entity/Attributes/Attribute.java @@ -61,7 +61,7 @@ public class Attribute { */ public Integer get(@NotNull ItemStack it) { NBTItem nbti = new NBTItem(it); - if (nbti.hasKey(name)){ + if (nbti.hasTag(name)){ return nbti.getInteger(name); } return 0; diff --git a/src/main/java/me/unurled/raxen/components/lootchest/loots/CustomLoot.java b/src/main/java/me/unurled/raxen/components/lootchest/loots/CustomLoot.java index 8ccf362..d2bd6a1 100644 --- a/src/main/java/me/unurled/raxen/components/lootchest/loots/CustomLoot.java +++ b/src/main/java/me/unurled/raxen/components/lootchest/loots/CustomLoot.java @@ -29,7 +29,7 @@ public class CustomLoot { public Double getDrop_rate() { NBTItem nbti = new NBTItem(item); - if (nbti.hasKey(NBT.DROP_RATE)) { + if (nbti.hasTag(NBT.DROP_RATE)) { return nbti.getDouble(NBT.DROP_RATE); } return 0.0; diff --git a/src/main/java/me/unurled/raxen/listener/player/ArmorEvent.java b/src/main/java/me/unurled/raxen/listener/player/ArmorEvent.java index a8c3e70..c58e92c 100644 --- a/src/main/java/me/unurled/raxen/listener/player/ArmorEvent.java +++ b/src/main/java/me/unurled/raxen/listener/player/ArmorEvent.java @@ -35,35 +35,35 @@ public class ArmorEvent implements Listener { if(e.getOldItem() != null && e.getOldItem().getType() != Material.AIR) { ItemStack oldItem = e.getOldItem(); NBTItem nbti = new NBTItem(oldItem); - if(nbti.hasKey("SPEED")) { + if(nbti.hasTag("SPEED")) { pm.getSpeed().remove(entity, nbti.getInteger("SPEED")); } - if(nbti.hasKey("HEALTH")) { + if(nbti.hasTag("HEALTH")) { pm.getHealth().remove(entity, nbti.getInteger("HEALTH")); } - if(nbti.hasKey("DEFENSE")) { + if(nbti.hasTag("DEFENSE")) { pm.getDefense().remove(entity, nbti.getInteger("DEFENSE")); } - if(nbti.hasKey("STRENGTH")) { + if(nbti.hasTag("STRENGTH")) { pm.getStrength().remove(entity, nbti.getInteger("STRENGTH")); } } if(e.getNewItem() != null && e.getNewItem().getType() != Material.AIR) { ItemStack newItem = e.getNewItem(); NBTItem nbti = new NBTItem(newItem); - if(nbti.hasKey("SPEED")) { + if(nbti.hasTag("SPEED")) { pm.getSpeed().add(entity, nbti.getInteger("SPEED")); } - if(nbti.hasKey("HEALTH")) { + if(nbti.hasTag("HEALTH")) { pm.getHealth().add(entity, nbti.getInteger("HEALTH")); } - if(nbti.hasKey("DEFENSE")) { + if(nbti.hasTag("DEFENSE")) { pm.getDefense().add(entity, nbti.getInteger("DEFENSE")); } - if(nbti.hasKey("STRENGTH")) { + if(nbti.hasTag("STRENGTH")) { pm.getStrength().add(entity, nbti.getInteger("STRENGTH")); } } diff --git a/src/main/java/me/unurled/raxen/listener/player/ItemHandEvent.java b/src/main/java/me/unurled/raxen/listener/player/ItemHandEvent.java index 88f70b9..13ba41d 100644 --- a/src/main/java/me/unurled/raxen/listener/player/ItemHandEvent.java +++ b/src/main/java/me/unurled/raxen/listener/player/ItemHandEvent.java @@ -42,7 +42,7 @@ public class ItemHandEvent implements Listener { if(oldItem != null && oldItem.getType() != Material.AIR) { NBTItem nbti = new NBTItem(oldItem); for (String s : Attributes.getNameList()) { - if (nbti.hasKey(s.toUpperCase())) { + if (nbti.hasTag(s.toUpperCase())) { java.lang.reflect.Method method = null; try { method = pm.getClass().getMethod("getItem" + s); @@ -63,23 +63,23 @@ public class ItemHandEvent implements Listener { } } } - /*if(nbti.hasKey("SPEED")) { + /*if(nbti.hasTag("SPEED")) { pm.getItemSpeed().remove(player, nbti.getInteger("SPEED")); } - if(nbti.hasKey("HEALTH")) { + if(nbti.hasTag("HEALTH")) { pm.getItemHealth().remove(player, nbti.getInteger("HEALTH")); } - if(nbti.hasKey("DEFENSE")) { + if(nbti.hasTag("DEFENSE")) { pm.getItemDefense().remove(player, nbti.getInteger("DEFENSE")); } - if(nbti.hasKey("STRENGTH")) { + if(nbti.hasTag("STRENGTH")) { pm.getItemStrength().remove(player, nbti.getInteger("STRENGTH")); }*/ } if(newItem != null && newItem.getType() != Material.AIR) { NBTItem nbti = new NBTItem(newItem); for (String s : Attributes.getNameList()) { - if (nbti.hasKey(s.toUpperCase())) { + if (nbti.hasTag(s.toUpperCase())) { java.lang.reflect.Method method = null; try { method = pm.getClass().getMethod("getItem" + s); @@ -100,18 +100,18 @@ public class ItemHandEvent implements Listener { } } } - /* if(nbti.hasKey("SPEED")) { + /* if(nbti.hasTag("SPEED")) { pm.getItemSpeed().add(player, nbti.getInteger("SPEED")); } - if(nbti.hasKey("HEALTH")) { + if(nbti.hasTag("HEALTH")) { pm.getItemHealth().add(player, nbti.getInteger("HEALTH")); } - if(nbti.hasKey("DEFENSE")) { + if(nbti.hasTag("DEFENSE")) { pm.getItemDefense().add(player, nbti.getInteger("DEFENSE")); } - if(nbti.hasKey("STRENGTH")) { + if(nbti.hasTag("STRENGTH")) { pm.getItemStrength().add(player, nbti.getInteger("STRENGTH")); }*/ } diff --git a/src/main/java/me/unurled/raxen/manager/server/CommandManager.java b/src/main/java/me/unurled/raxen/manager/server/CommandManager.java index d58b9c9..8d1333f 100644 --- a/src/main/java/me/unurled/raxen/manager/server/CommandManager.java +++ b/src/main/java/me/unurled/raxen/manager/server/CommandManager.java @@ -28,6 +28,8 @@ public class CommandManager { private MainGuiCommand mainGuiCommand; private ItemTo64Command itemTo64Command; + private TestHoloCommand testHoloCommand; + public CommandManager(Raxen main) { this.main = main; this.itemListCommand = new ItemListCommand(this.main); @@ -40,6 +42,7 @@ public class CommandManager { this.customModelDataCommand = new CustomModelDataCommand(); this.mainGuiCommand = new MainGuiCommand(this.main); this.itemTo64Command = new ItemTo64Command(); + this.testHoloCommand = new TestHoloCommand(this.main); } /** @@ -82,5 +85,8 @@ public class CommandManager { main.getCommand("itemto64").setTabCompleter(itemTo64Command); main.getCommand("itemto64").setExecutor(itemTo64Command); + + main.getCommand("testholo").setTabCompleter(testHoloCommand); + main.getCommand("testholo").setExecutor(testHoloCommand); } } diff --git a/src/main/java/me/unurled/raxen/manager/server/LibsManager.java b/src/main/java/me/unurled/raxen/manager/server/LibsManager.java index 203795d..0a7c3b2 100644 --- a/src/main/java/me/unurled/raxen/manager/server/LibsManager.java +++ b/src/main/java/me/unurled/raxen/manager/server/LibsManager.java @@ -2,7 +2,9 @@ package me.unurled.raxen.manager.server; import lombok.Getter; import me.unurled.raxen.Raxen; +import me.unurled.raxen.utils.Utils; import me.unurled.raxen.utils.libs.*; +import org.bukkit.Bukkit; public class LibsManager { @Getter @@ -18,7 +20,9 @@ public class LibsManager { @Getter private PlaceHolderAPI placeHolderAPI; @Getter - private Citizens citizens; + private CitizensApi citizens; + @Getter + private HolographicDisplay holographicDisplay; public LibsManager(Raxen main) { this.luckPerm = new LuckPerm(main); @@ -27,6 +31,12 @@ public class LibsManager { this.protocolManager = new ProtocolManager(main); this.mongoDB = new MongoDB(); this.placeHolderAPI = new PlaceHolderAPI(main); - this.citizens = new Citizens(main); + this.citizens = new CitizensApi(main); + if (!Bukkit.getPluginManager().isPluginEnabled("HolographicDisplays")) { + Utils.error("*** HolographicDisplays is not installed or not enabled. ***", "*** This plugin will be disabled. ***"); + main.disable(); + } else { + holographicDisplay = new HolographicDisplay(main); + } } } diff --git a/src/main/java/me/unurled/raxen/utils/EntityUtils.java b/src/main/java/me/unurled/raxen/utils/EntityUtils.java index 4a83bea..774b5aa 100644 --- a/src/main/java/me/unurled/raxen/utils/EntityUtils.java +++ b/src/main/java/me/unurled/raxen/utils/EntityUtils.java @@ -2,7 +2,6 @@ package me.unurled.raxen.utils; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; diff --git a/src/main/java/me/unurled/raxen/utils/Items.java b/src/main/java/me/unurled/raxen/utils/Items.java index 5220c22..ec8444e 100644 --- a/src/main/java/me/unurled/raxen/utils/Items.java +++ b/src/main/java/me/unurled/raxen/utils/Items.java @@ -504,42 +504,42 @@ public class Items { lore.add(cp); } NBTItem nbti = new NBTItem(it); - if(nbti.hasKey(NBT.SPEED)) { + if(nbti.hasTag(NBT.SPEED)) { if(lore.size() > 2) { lore.add(2, colorComp(attributes("SPEED")).append(Component.text(nbti.getInteger(NBT.SPEED)))); } else { lore.add(colorComp(attributes("SPEED")).append(Component.text(nbti.getInteger(NBT.SPEED)))); } } - if(nbti.hasKey(NBT.HEALTH)) { + if(nbti.hasTag(NBT.HEALTH)) { if(lore.size() > 1) { lore.add(1, colorComp(attributes("HEALTH")).append(Component.text(nbti.getInteger(NBT.HEALTH)))); } else { lore.add(colorComp(attributes("HEALTH")).append(Component.text(nbti.getInteger(NBT.HEALTH)))); } } - if(nbti.hasKey(NBT.DEFENSE)) { + if(nbti.hasTag(NBT.DEFENSE)) { if(lore.size() > 3) { lore.add(3, colorComp(attributes("DEFENSE")).append(Component.text(nbti.getInteger(NBT.DEFENSE)))); } else { lore.add(colorComp(attributes("DEFENSE")).append(Component.text(nbti.getInteger(NBT.DEFENSE)))); } } - if(nbti.hasKey(NBT.STRENGTH)) { + if(nbti.hasTag(NBT.STRENGTH)) { if(lore.size() > 3) { lore.add(3, colorComp(attributes("STRENGTH")).append(Component.text(nbti.getInteger(NBT.STRENGTH)))); } else { lore.add(colorComp(attributes("STRENGTH")).append(Component.text(nbti.getInteger(NBT.STRENGTH)))); } } - if(nbti.hasKey(NBT.MANA)) { + if(nbti.hasTag(NBT.MANA)) { if(lore.size() > 3) { lore.add(3, colorComp(attributes("MANA")).append(Component.text(nbti.getInteger(NBT.MANA)))); } else { lore.add(colorComp(attributes("MANA")).append(Component.text(nbti.getInteger(NBT.MANA)))); } } - if(nbti.hasKey(NBT.LUCK)) { + if(nbti.hasTag(NBT.LUCK)) { if(lore.size() > 3) { lore.add(3, colorComp(attributes("LUCK")).append(Component.text(nbti.getInteger(NBT.LUCK)))); } else { diff --git a/src/main/java/me/unurled/raxen/utils/Reload.java b/src/main/java/me/unurled/raxen/utils/Reload.java index 87e9ab0..5df6c61 100644 --- a/src/main/java/me/unurled/raxen/utils/Reload.java +++ b/src/main/java/me/unurled/raxen/utils/Reload.java @@ -15,12 +15,13 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import static me.unurled.raxen.utils.Utils.colorTextComp; public class Reload implements Listener { - private static FileConfiguration config = Raxen.getPlugin().getConfig(); + private static FileConfiguration config = Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("Raxen")).getConfig(); private static boolean serverReloading = true; /** diff --git a/src/main/java/me/unurled/raxen/utils/libs/Citizens.java b/src/main/java/me/unurled/raxen/utils/libs/CitizensApi.java similarity index 85% rename from src/main/java/me/unurled/raxen/utils/libs/Citizens.java rename to src/main/java/me/unurled/raxen/utils/libs/CitizensApi.java index 7d3bfa6..5c6f1a7 100644 --- a/src/main/java/me/unurled/raxen/utils/libs/Citizens.java +++ b/src/main/java/me/unurled/raxen/utils/libs/CitizensApi.java @@ -3,11 +3,11 @@ package me.unurled.raxen.utils.libs; import me.unurled.raxen.Raxen; import org.bukkit.entity.Entity; -public class Citizens { +public class CitizensApi { private Raxen main; - public Citizens(Raxen main) { + public CitizensApi(Raxen main) { this.main = main; } diff --git a/src/main/java/me/unurled/raxen/utils/libs/HolographicDisplay.java b/src/main/java/me/unurled/raxen/utils/libs/HolographicDisplay.java new file mode 100644 index 0000000..20362b3 --- /dev/null +++ b/src/main/java/me/unurled/raxen/utils/libs/HolographicDisplay.java @@ -0,0 +1,82 @@ +package me.unurled.raxen.utils.libs; + +import lombok.Getter; +import me.filoghost.holographicdisplays.api.HolographicDisplaysAPI; +import me.filoghost.holographicdisplays.api.hologram.Hologram; +import me.filoghost.holographicdisplays.api.hologram.line.ItemHologramLine; +import me.filoghost.holographicdisplays.api.hologram.line.TextHologramLine; +import me.unurled.raxen.Raxen; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; + +public class HolographicDisplay { + private Raxen main; + + @Getter + private HolographicDisplaysAPI holographicDisplaysAPI; + + public HolographicDisplay(Raxen main) { + this.main = main; + holographicDisplaysAPI = HolographicDisplaysAPI.get(main); + } + + /** + * create a Hologram at Loc + * @param text the text to be displayed (one line only) + * @param loc the location of the hologram + * @return the created hologram + */ + public Hologram createHologram(String text, Location loc) { + Hologram hologram = null; + if (text != null && !text.equals("")) { + hologram = holographicDisplaysAPI.createHologram(loc); + TextHologramLine textLine = hologram.getLines().appendText(text); + } + return hologram; + } + + /** + * create a Hologram at Loc + * @param item the item to be displayed (only one) + * @param loc the location of the hologram + * @return the created hologram + */ + public Hologram createHologram(ItemStack item, Location loc) { + Hologram hologram = null; + if (item != null && !item.getType().equals(Material.AIR)) { + hologram = holographicDisplaysAPI.createHologram(loc); + ItemHologramLine textLine = hologram.getLines().appendItem(item); + } + return hologram; + } + + /** + * insert in the holo + * @param holo the hologram to insert + * @param text the text that is inserted + * @param line the line to change (start at 0) + * @return the hologram + */ + public Hologram insertHologram(Hologram holo, String text, Integer line) { + if (text != null && !text.equals("")) { + TextHologramLine textLine = holo.getLines().insertText(line, text); + } + return holo; + } + + /** + * insert in the holo + * @param holo the hologram to insert + * @param item the item that is inserted + * @param line the line to change (start at 0) + * @return the hologram + */ + public Hologram insertHologram(Hologram holo, ItemStack item, Integer line) { + if (item != null && !item.getType().equals(Material.AIR)) { + ItemHologramLine textLine = holo.getLines().insertItem(line, item); + } + return holo; + } +} diff --git a/src/main/java/me/unurled/raxen/utils/libs/MongoDB.java b/src/main/java/me/unurled/raxen/utils/libs/MongoDB.java index d01826a..9effefb 100644 --- a/src/main/java/me/unurled/raxen/utils/libs/MongoDB.java +++ b/src/main/java/me/unurled/raxen/utils/libs/MongoDB.java @@ -1,7 +1,6 @@ package me.unurled.raxen.utils.libs; import com.mongodb.ConnectionString; -import com.mongodb.MongoClientSettings; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; @@ -12,6 +11,8 @@ import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import java.util.Objects; +import java.util.logging.Level; +import java.util.logging.Logger; import static me.unurled.raxen.utils.Utils.*; @@ -36,6 +37,7 @@ public class MongoDB { mongoCollection = mongoDatabase.getCollection("player"); mongoConfigs = mongoDatabase.getCollection("config"); + Bukkit.getConsoleSender().sendMessage(colorComp("MongoDB connected!")); } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index cecaf1c..7438c47 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,8 +3,8 @@ version: '${version}' main: me.unurled.raxen.Raxen author: unurled api-version: 1.19 -depend: [ProtocolLib, PlaceholderAPI, 'Multiverse-Core'] -softdepend: [LuckPerms, Essentials] +depend: [ProtocolLib, PlaceholderAPI, 'Multiverse-Core', Citizens] +softdepend: [LuckPerms, Essentials, HolographicDisplays] commands: reloadplugin: @@ -42,6 +42,8 @@ commands: description: not very much used, more with right click on device itemto64: description: transform an item to it's 64encoded byte + testholo: + description: test command for the holograms permissions: raxen.reload.cmd: @@ -66,3 +68,5 @@ permissions: description: main gui command permission raxen.itemto64.cmd: description: item to 64 command permission + raxen.testholo.cmd: + description: testholo command permission \ No newline at end of file