mirror of
https://github.com/SPAWNRYS-ban/FUCK-CustomDiscs.git
synced 2025-12-10 05:19:43 +05:00
Fix components
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package me.Navoei.customdiscsplugin;
|
||||
|
||||
import io.papermc.paper.datacomponent.DataComponentTypes;
|
||||
import io.papermc.paper.datacomponent.item.TooltipDisplay;
|
||||
import me.Navoei.customdiscsplugin.language.Lang;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
@@ -24,6 +26,8 @@ import org.bukkit.persistence.PersistentDataType;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.bukkit.entity.minecart.HopperMinecart;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
|
||||
@@ -58,14 +62,12 @@ public class HopperManager implements Listener {
|
||||
NamespacedKey customSoundRangeKey = new NamespacedKey(customDiscs, "range");
|
||||
|
||||
if(persistentDataContainer.has(customSoundRangeKey, PersistentDataType.FLOAT)) {
|
||||
range = Math.min(persistentDataContainer.get(customSoundRangeKey, PersistentDataType.FLOAT), CustomDiscs.getInstance().musicDiscMaxDistance);
|
||||
float soundRange = Optional.ofNullable(persistentDataContainer.get(customSoundRangeKey, PersistentDataType.FLOAT)).orElse(0f);
|
||||
range = Math.min(soundRange, CustomDiscs.getInstance().musicDiscMaxDistance);
|
||||
}
|
||||
|
||||
if (discMeta.getJukeboxPlayable().isShowInTooltip()) {
|
||||
JukeboxPlayableComponent jpc = discMeta.getJukeboxPlayable();
|
||||
jpc.setShowInTooltip(false);
|
||||
discMeta.setJukeboxPlayable(jpc);
|
||||
event.getItem().setItemMeta(discMeta);
|
||||
|
||||
if (!event.getItem().hasData(DataComponentTypes.TOOLTIP_DISPLAY) || !event.getItem().getData(DataComponentTypes.TOOLTIP_DISPLAY).hiddenComponents().contains(DataComponentTypes.JUKEBOX_PLAYABLE)) {
|
||||
event.getItem().setData(DataComponentTypes.TOOLTIP_DISPLAY, TooltipDisplay.tooltipDisplay().addHiddenComponents(DataComponentTypes.JUKEBOX_PLAYABLE).build());
|
||||
}
|
||||
|
||||
Path soundFilePath = Path.of(customDiscs.getDataFolder().getPath(), "musicdata", soundFileName);
|
||||
|
||||
@@ -5,6 +5,8 @@ import dev.jorel.commandapi.arguments.ArgumentSuggestions;
|
||||
import dev.jorel.commandapi.arguments.StringArgument;
|
||||
import dev.jorel.commandapi.arguments.TextArgument;
|
||||
import dev.jorel.commandapi.executors.CommandArguments;
|
||||
import io.papermc.paper.datacomponent.DataComponentTypes;
|
||||
import io.papermc.paper.datacomponent.item.TooltipDisplay;
|
||||
import me.Navoei.customdiscsplugin.CustomDiscs;
|
||||
import me.Navoei.customdiscsplugin.language.Lang;
|
||||
import net.kyori.adventure.text.Component;
|
||||
@@ -17,7 +19,6 @@ import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.inventory.meta.components.JukeboxPlayableComponent;
|
||||
import org.bukkit.persistence.PersistentDataContainer;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
|
||||
@@ -94,16 +95,13 @@ public class CreateSubCommand extends CommandAPICommand {
|
||||
String song_name = Objects.requireNonNull(arguments.getByClass("song_name", String.class));
|
||||
|
||||
ItemStack disc = new ItemStack(player.getInventory().getItemInMainHand());
|
||||
disc.setData(DataComponentTypes.TOOLTIP_DISPLAY, TooltipDisplay.tooltipDisplay().addHiddenComponents(DataComponentTypes.JUKEBOX_PLAYABLE).build());
|
||||
ItemMeta meta = disc.getItemMeta();
|
||||
@Nullable List<Component> itemLore = new ArrayList<>();
|
||||
final TextComponent customLoreSong = Component.text().decoration(TextDecoration.ITALIC, false).content(song_name).color(NamedTextColor.GRAY).build();
|
||||
itemLore.add(customLoreSong);
|
||||
meta.lore(itemLore);
|
||||
|
||||
JukeboxPlayableComponent jpc = meta.getJukeboxPlayable();
|
||||
jpc.setShowInTooltip(false);
|
||||
meta.setJukeboxPlayable(jpc);
|
||||
|
||||
PersistentDataContainer data = meta.getPersistentDataContainer();
|
||||
data.set(new NamespacedKey(this.plugin, "customdisc"), PersistentDataType.STRING, filename);
|
||||
player.getInventory().getItemInMainHand().setItemMeta(meta);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package me.Navoei.customdiscsplugin.event;
|
||||
|
||||
import io.papermc.paper.datacomponent.DataComponentTypes;
|
||||
import io.papermc.paper.datacomponent.item.TooltipDisplay;
|
||||
import me.Navoei.customdiscsplugin.CustomDiscs;
|
||||
import me.Navoei.customdiscsplugin.PlayerManager;
|
||||
import me.Navoei.customdiscsplugin.VoicePlugin;
|
||||
@@ -30,6 +32,7 @@ import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
public class JukeBox implements Listener{
|
||||
|
||||
@@ -51,19 +54,17 @@ public class JukeBox implements Listener{
|
||||
ItemMeta discMeta = event.getItem().getItemMeta();
|
||||
String soundFileName = discMeta.getPersistentDataContainer().get(new NamespacedKey(customDiscs, "customdisc"), PersistentDataType.STRING);
|
||||
|
||||
PersistentDataContainer persistentDataContainer = event.getItem().getItemMeta().getPersistentDataContainer();
|
||||
PersistentDataContainer persistentDataContainer = discMeta.getPersistentDataContainer();
|
||||
float range = CustomDiscs.getInstance().musicDiscDistance;
|
||||
NamespacedKey customSoundRangeKey = new NamespacedKey(customDiscs, "range");
|
||||
|
||||
if(persistentDataContainer.has(customSoundRangeKey, PersistentDataType.FLOAT)) {
|
||||
range = Math.min(persistentDataContainer.get(customSoundRangeKey, PersistentDataType.FLOAT), CustomDiscs.getInstance().musicDiscMaxDistance);
|
||||
float soundRange = Optional.ofNullable(persistentDataContainer.get(customSoundRangeKey, PersistentDataType.FLOAT)).orElse(0f);
|
||||
range = Math.min(soundRange, CustomDiscs.getInstance().musicDiscMaxDistance);
|
||||
}
|
||||
|
||||
if (discMeta.getJukeboxPlayable().isShowInTooltip()) {
|
||||
JukeboxPlayableComponent jpc = discMeta.getJukeboxPlayable();
|
||||
jpc.setShowInTooltip(false);
|
||||
discMeta.setJukeboxPlayable(jpc);
|
||||
event.getItem().setItemMeta(discMeta);
|
||||
|
||||
if (!event.getItem().hasData(DataComponentTypes.TOOLTIP_DISPLAY) || !event.getItem().getData(DataComponentTypes.TOOLTIP_DISPLAY).hiddenComponents().contains(DataComponentTypes.JUKEBOX_PLAYABLE)) {
|
||||
event.getItem().setData(DataComponentTypes.TOOLTIP_DISPLAY, TooltipDisplay.tooltipDisplay().addHiddenComponents(DataComponentTypes.JUKEBOX_PLAYABLE).build());
|
||||
Component textComponent = LegacyComponentSerializer.legacyAmpersand().deserialize(Lang.PREFIX + Lang.DISC_CONVERTED.toString());
|
||||
player.sendMessage(textComponent);
|
||||
}
|
||||
@@ -71,7 +72,7 @@ public class JukeBox implements Listener{
|
||||
Path soundFilePath = Path.of(customDiscs.getDataFolder().getPath(), "musicdata", soundFileName);
|
||||
|
||||
if (soundFilePath.toFile().exists()) {
|
||||
Component songNameComponent = Objects.requireNonNull(event.getItem().getItemMeta().lore()).get(0).asComponent();
|
||||
Component songNameComponent = Objects.requireNonNull(discMeta.lore()).get(0).asComponent();
|
||||
String songName = PlainTextComponentSerializer.plainText().serialize(songNameComponent);
|
||||
Component customActionBarSongPlaying = LegacyComponentSerializer.legacyAmpersand().deserialize(Lang.NOW_PLAYING.toString().replace("%song_name%", songName));
|
||||
|
||||
|
||||
@@ -14,6 +14,6 @@ successful-download: "&aFile successfully downloaded to &7%file_path%&a."
|
||||
create-disc: "&aCreate a disc by doing &7/cd create %filename% \"Custom Lore\"&a."
|
||||
download-error: "&cAn error has occurred while downloading."
|
||||
now-playing: "&6Now playing: %song_name%"
|
||||
disc-converted: "&aConverted disc to new format! &fThis is due to changes in newer Minecraft versions which introduced &7JukeboxPlayableComponent&f."
|
||||
disc-converted: "&aConverted disc to new format! &fThis is due to changes in newer Minecraft versions which introduced &7ToolTipDisplay&f."
|
||||
invalid-range: "&cYou need to chose a range between 1 and %range_value%"
|
||||
create-custom-range: "&7Your range is set to: &a\"%custom_range%\"."
|
||||
Reference in New Issue
Block a user