From 9e07f728e1c3c22fac51701f5dff5413682c95e2 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Thu, 9 Feb 2023 13:32:28 -0600 Subject: [PATCH] it works --- .../hmccosmetics/HMCCosmeticsPlugin.java | 4 +-- .../user/manager/UserEmoteManager.java | 6 +++- .../user/manager/UserEmoteModel.java | 32 ++++++++++++++----- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/HMCCosmeticsPlugin.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/HMCCosmeticsPlugin.java index 0d61d09c..27692358 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/HMCCosmeticsPlugin.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/HMCCosmeticsPlugin.java @@ -13,7 +13,6 @@ import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetics; import com.hibiscusmc.hmccosmetics.database.Database; import com.hibiscusmc.hmccosmetics.gui.Menus; import com.hibiscusmc.hmccosmetics.hooks.Hooks; -import com.hibiscusmc.hmccosmetics.hooks.placeholders.HMCPlaceholderExpansion; import com.hibiscusmc.hmccosmetics.hooks.worldguard.WGHook; import com.hibiscusmc.hmccosmetics.hooks.worldguard.WGListener; import com.hibiscusmc.hmccosmetics.listener.PlayerConnectionListener; @@ -26,6 +25,7 @@ import com.jeff_media.updatechecker.UpdateChecker; import com.ticxo.playeranimator.PlayerAnimatorImpl; import com.ticxo.playeranimator.api.PlayerAnimator; import com.ticxo.playeranimator.api.animation.pack.AnimationPack; +import org.apache.commons.io.FilenameUtils; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -239,7 +239,7 @@ public final class HMCCosmeticsPlugin extends JavaPlugin { for (File emoteFile : emotesFiles) { if (!emoteFile.getName().contains("bbmodel")) continue; String animationName = emoteFile.getName().replaceAll(".bbmodel", ""); - PlayerAnimator.api.getAnimationManager().importAnimations(emoteFile.getName(), emoteFile); + PlayerAnimator.api.getAnimationManager().importAnimations(FilenameUtils.removeExtension(emoteFile.getName()), emoteFile); MessagesUtil.sendDebugMessages("Added '" + animationName + "' to Player Animator "); } diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserEmoteManager.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserEmoteManager.java index 17e51215..0c70421e 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserEmoteManager.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserEmoteManager.java @@ -16,7 +16,11 @@ public class UserEmoteManager { public void playEmote(CosmeticEmoteType cosmeticEmoteType) { MessagesUtil.sendDebugMessages("playEmote " + cosmeticEmoteType.getAnimationId()); model = new UserEmoteModel(user); - model.playAnimation(cosmeticEmoteType.getAnimationId()); + try { + model.playAnimation(cosmeticEmoteType.getAnimationId()); + } catch (Exception e) { + e.printStackTrace(); + } } public boolean isPlayingEmote() { diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserEmoteModel.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserEmoteModel.java index 135ce0f9..ce1b55c6 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserEmoteModel.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserEmoteModel.java @@ -1,9 +1,10 @@ package com.hibiscusmc.hmccosmetics.user.manager; +import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.util.MessagesUtil; -import com.ticxo.playeranimator.api.PlayerAnimator; import com.ticxo.playeranimator.api.model.player.PlayerModel; +import org.bukkit.Bukkit; public class UserEmoteModel extends PlayerModel { @@ -17,24 +18,39 @@ public class UserEmoteModel extends PlayerModel { @Override public void playAnimation(String id) { - id = id + "\\bbmodel\\" + id; - MessagesUtil.sendDebugMessages("playAnimation " + id); + id = id + "." + id + "." + id; // Make into a format that playerAnimator works with. Requires 3 splits. super.playAnimation(id); + emotePlaying = id; + user.getPlayer().setInvisible(true); user.hidePlayer(); user.hideCosmetics(CosmeticUser.HiddenReason.EMOTE); - emotePlaying = id; + MessagesUtil.sendDebugMessages("playAnimation run"); + } + + @Override + public boolean update() { + if (super.getAnimationProperty() == null) { + stopAnimation(); + return false; + } + boolean update = (super.update() && isPlayingAnimation()); + if (!update) { + stopAnimation(); + } + return update; } public void stopAnimation() { - user.showPlayer(); - user.showCosmetics(); emotePlaying = null; + Bukkit.getScheduler().runTask(HMCCosmeticsPlugin.getInstance(), () -> { + if (user.getPlayer() != null) user.getPlayer().setInvisible(false); + user.showPlayer(); + user.showCosmetics(); + }); } public boolean isPlayingAnimation() { if (emotePlaying == null) return false; return true; } - - }