diff --git a/CHANGELOG.log b/CHANGELOG.log index 3cd81a6..7f84db4 100644 --- a/CHANGELOG.log +++ b/CHANGELOG.log @@ -1,12 +1,10 @@ 1.2.0: Update n°13 (XX/XX/24) [FEATURES] - - Players are now able to mark disguises as favorites. + - Players are now able to save disguises as presets. - Modernized the messages and added various sound effects upon interacting with the plugin. - - Made GUIs names cleaner. [FIXES] - Fixed an oversight preventing the configuration from properly being migrated. - - Fixed the placeholder item in the skin cache invalidation not being translated. [LANGUAGE] - Moved the prefix to the language file. diff --git a/src/main/java/xyz/ineanto/nicko/anvil/AnvilManager.java b/src/main/java/xyz/ineanto/nicko/anvil/AnvilManager.java index 5e326d6..7e6fc26 100644 --- a/src/main/java/xyz/ineanto/nicko/anvil/AnvilManager.java +++ b/src/main/java/xyz/ineanto/nicko/anvil/AnvilManager.java @@ -118,14 +118,14 @@ public class AnvilManager { final ActionResult actionResult = appearanceManager.update(skinChange, false); if (!actionResult.isError()) { player.sendMessage(playerLanguage.translateWithWhoosh(LanguageKey.Event.Appearance.Set.OK)); - player.playSound(player.getLocation(), Sound.BLOCK_WOODEN_BUTTON_CLICK_ON, 1, 1f); + player.playSound(player, Sound.BLOCK_WOODEN_BUTTON_CLICK_ON, 1, 1f); } else { player.sendMessage( playerLanguage.translateWithOops( LanguageKey.Event.Appearance.Set.ERROR, playerLanguage.translate(actionResult.getErrorKey(), false) )); - player.playSound(player.getLocation(), Sound.BLOCK_ANVIL_PLACE, 1f, 1f); + player.playSound(player, Sound.BLOCK_ANVIL_PLACE, 0.5f, 1f); } return Collections.singletonList(AnvilGUI.ResponseAction.close()); } diff --git a/src/main/java/xyz/ineanto/nicko/gui/items/admin/cache/CacheEntryItem.java b/src/main/java/xyz/ineanto/nicko/gui/items/admin/cache/CacheEntryItem.java index ae8a9d6..e7207d2 100644 --- a/src/main/java/xyz/ineanto/nicko/gui/items/admin/cache/CacheEntryItem.java +++ b/src/main/java/xyz/ineanto/nicko/gui/items/admin/cache/CacheEntryItem.java @@ -1,5 +1,6 @@ package xyz.ineanto.nicko.gui.items.admin.cache; +import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; @@ -17,7 +18,6 @@ import xyz.ineanto.nicko.mojang.MojangAPI; import xyz.xenondevs.invui.item.builder.ItemBuilder; import xyz.xenondevs.invui.item.builder.SkullBuilder; import xyz.xenondevs.invui.item.impl.AsyncItem; -import xyz.xenondevs.invui.item.impl.SuppliedItem; import xyz.xenondevs.invui.util.MojangApiUtils; import java.io.IOException; @@ -29,10 +29,10 @@ public class CacheEntryItem extends AsyncItem { private final MojangAPI mojangAPI = Nicko.getInstance().getMojangAPI(); public CacheEntryItem(PlayerLanguage playerLanguage, String uuid) { - super(new SuppliedItem(() -> { - final ItemBuilder builder = new ItemBuilder(Material.PAINTING); - return playerLanguage.translateItem(builder, LanguageKey.GUI.LOADING); - }, (click -> true)).getItemProvider(), + super(new ItemBuilder(Material.PAINTING) + .setDisplayName( + Component.text(playerLanguage.translate(LanguageKey.GUI.LOADING, false)).content() + ), () -> { final String dashedUuid = uuid.replaceAll("(.{8})(.{4})(.{4})(.{4})(.+)", "$1-$2-$3-$4-$5"); final UUID uuidObject = UUID.fromString(dashedUuid); @@ -57,7 +57,7 @@ public class CacheEntryItem extends AsyncItem { public void onConfirm() { final PlayerLanguage playerLanguage = new PlayerLanguage(player); player.sendMessage(playerLanguage.translate(LanguageKey.Event.Admin.Cache.INVALIDATE_ENTRY, true, name)); - player.playSound(player.getLocation(), Sound.BLOCK_WOODEN_BUTTON_CLICK_ON, 1, 1f); + player.playSound(player, Sound.BLOCK_WOODEN_BUTTON_CLICK_ON, 1, 1f); mojangAPI.eraseFromCache(uuid); } diff --git a/src/main/java/xyz/ineanto/nicko/gui/items/admin/cache/InvalidateCacheItem.java b/src/main/java/xyz/ineanto/nicko/gui/items/admin/cache/InvalidateCacheItem.java index 2614497..be4a0ac 100644 --- a/src/main/java/xyz/ineanto/nicko/gui/items/admin/cache/InvalidateCacheItem.java +++ b/src/main/java/xyz/ineanto/nicko/gui/items/admin/cache/InvalidateCacheItem.java @@ -29,7 +29,7 @@ public class InvalidateCacheItem { final Player player = click.getPlayer(); final PlayerLanguage playerLanguage = new PlayerLanguage(player); player.sendMessage(playerLanguage.translateWithWhoosh(LanguageKey.Event.Admin.Cache.INVALIDATE_CACHE)); - player.playSound(player.getLocation(), Sound.BLOCK_WOODEN_BUTTON_CLICK_ON, 1, 1f); + player.playSound(player, Sound.BLOCK_WOODEN_BUTTON_CLICK_ON, 1, 1f); Nicko.getInstance().getMojangAPI().getSkinCache().invalidateAll(); return true; } diff --git a/src/main/java/xyz/ineanto/nicko/gui/items/admin/check/PlayerInformationItem.java b/src/main/java/xyz/ineanto/nicko/gui/items/admin/check/PlayerInformationItem.java index bc01434..ff0a506 100644 --- a/src/main/java/xyz/ineanto/nicko/gui/items/admin/check/PlayerInformationItem.java +++ b/src/main/java/xyz/ineanto/nicko/gui/items/admin/check/PlayerInformationItem.java @@ -13,8 +13,8 @@ import xyz.ineanto.nicko.gui.ChoiceGUI; import xyz.ineanto.nicko.gui.PlayerCheckGUI; import xyz.ineanto.nicko.gui.items.ItemDefaults; import xyz.ineanto.nicko.gui.items.common.choice.ChoiceCallback; -import xyz.ineanto.nicko.language.LanguageKey; import xyz.ineanto.nicko.language.PlayerLanguage; +import xyz.ineanto.nicko.language.LanguageKey; import xyz.ineanto.nicko.profile.NickoProfile; import xyz.xenondevs.invui.item.builder.AbstractItemBuilder; import xyz.xenondevs.invui.item.builder.ItemBuilder; @@ -79,7 +79,7 @@ public class PlayerInformationItem extends AsyncItem { public void onConfirm() { final AppearanceManager appearanceManager = new AppearanceManager(target); appearanceManager.reset(true); - player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_TRADE, 1, 1f); + player.playSound(player, Sound.ENTITY_VILLAGER_TRADE, 1, 1f); player.sendMessage(playerLanguage.translate(LanguageKey.Event.Admin.Check.REMOVE_SKIN, true, target.getName())); } diff --git a/src/main/java/xyz/ineanto/nicko/packet/InternalPacketSender.java b/src/main/java/xyz/ineanto/nicko/packet/InternalPacketSender.java index bbb41a3..5626bab 100644 --- a/src/main/java/xyz/ineanto/nicko/packet/InternalPacketSender.java +++ b/src/main/java/xyz/ineanto/nicko/packet/InternalPacketSender.java @@ -4,9 +4,7 @@ import com.mojang.authlib.GameProfile; import com.mojang.authlib.properties.Property; import com.mojang.authlib.properties.PropertyMap; import it.unimi.dsi.fastutil.ints.IntList; -import net.minecraft.Optionull; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.RemoteChatSession; import net.minecraft.network.chat.contents.PlainTextContents; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.*; @@ -143,14 +141,14 @@ public class InternalPacketSender implements PacketSender { ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LATENCY); final List entries = List.of(new ClientboundPlayerInfoUpdatePacket.Entry( - serverPlayer.getUUID(), + player.getUniqueId(), serverPlayer.gameProfile, true, - serverPlayer.connection.latency(), + player.getPing(), serverPlayer.gameMode.getGameModeForPlayer(), MutableComponent.create(new PlainTextContents.LiteralContents(displayName)), - serverPlayer.getTabListOrder(), - Optionull.map(serverPlayer.getChatSession(), RemoteChatSession::asData) + 1, + null )); final ClientboundPlayerInfoUpdatePacket update = new ClientboundPlayerInfoUpdatePacket(actions, entries);