Re-add disguise sounds. Now respect 1.9 sound categories.
This commit is contained in:
		| @@ -78,7 +78,6 @@ public enum DisguiseSound { | ||||
|     } | ||||
|  | ||||
|     public static DisguiseSound getType(String name) { | ||||
|         //TODO: FIX the disguise sounds | ||||
|         try { | ||||
|             return valueOf(name); | ||||
|         } catch (Exception ex) { | ||||
|   | ||||
| @@ -609,6 +609,7 @@ public class PacketsManager { | ||||
|                                             if (block != null) { | ||||
|                                                 Object step = ReflectionManager.getNmsField("Block", "stepSound").get(block); | ||||
|                                                 mods.write(0, ReflectionManager.getNmsMethod(step.getClass(), "getStepSound").invoke(step)); | ||||
|                                                 mods.write(1, ReflectionManager.getSoundCategory(disguise.getType())); | ||||
|                                             } | ||||
|                                         } catch (Exception ex) { | ||||
|                                             ex.printStackTrace(); | ||||
| @@ -618,6 +619,7 @@ public class PacketsManager { | ||||
|                                         // sending fake sounds. In which case. Why cancel it. | ||||
|                                     } else { | ||||
|                                         mods.write(0, ReflectionManager.getCraftSoundEffect(sound)); | ||||
|                                         mods.write(1, ReflectionManager.getSoundCategory(disguise.getType())); | ||||
|                                         // Time to change the pitch and volume | ||||
|                                         if (soundType == SoundType.HURT || soundType == SoundType.DEATH | ||||
|                                                 || soundType == SoundType.IDLE) { | ||||
| @@ -713,7 +715,7 @@ public class PacketsManager { | ||||
|                                         mods = packet.getModifier(); | ||||
|                                         Object craftSoundEffect = ReflectionManager.getCraftSoundEffect(sound); | ||||
|                                         mods.write(0, craftSoundEffect); | ||||
|                                         mods.write(1, ReflectionManager.getSoundCategory("master")); //Meh | ||||
|                                         mods.write(1, ReflectionManager.getSoundCategory(disguise.getType())); | ||||
|                                         mods.write(2, (int) (loc.getX() * 8D)); | ||||
|                                         mods.write(3, (int) (loc.getY() * 8D)); | ||||
|                                         mods.write(4, (int) (loc.getZ() * 8D)); | ||||
| @@ -1103,15 +1105,14 @@ public class PacketsManager { | ||||
|     } | ||||
|  | ||||
|     public static void setHearDisguisesListener(boolean enabled) { | ||||
|         //TODO: FIX SOUNDS | ||||
| //        if (soundsListenerEnabled != enabled) { | ||||
| //            soundsListenerEnabled = enabled; | ||||
| //            if (soundsListenerEnabled) { | ||||
| //                ProtocolLibrary.getProtocolManager().addPacketListener(soundsListener); | ||||
| //            } else { | ||||
| //                ProtocolLibrary.getProtocolManager().removePacketListener(soundsListener); | ||||
| //            } | ||||
| //        } | ||||
|         if (soundsListenerEnabled != enabled) { | ||||
|             soundsListenerEnabled = enabled; | ||||
|             if (soundsListenerEnabled) { | ||||
|                 ProtocolLibrary.getProtocolManager().addPacketListener(soundsListener); | ||||
|             } else { | ||||
|                 ProtocolLibrary.getProtocolManager().removePacketListener(soundsListener); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void setInventoryListenerEnabled(boolean enabled) { | ||||
|   | ||||
| @@ -7,6 +7,7 @@ import com.comphenix.protocol.wrappers.WrappedDataWatcher.WrappedDataWatcherObje | ||||
| import com.comphenix.protocol.wrappers.WrappedGameProfile; | ||||
| import com.google.common.collect.ImmutableMap; | ||||
| import com.mojang.authlib.GameProfile; | ||||
| import me.libraryaddict.disguise.disguisetypes.DisguiseType; | ||||
| import org.apache.commons.lang3.tuple.ImmutablePair; | ||||
| import org.apache.commons.lang3.tuple.Pair; | ||||
| import org.bukkit.Art; | ||||
| @@ -15,9 +16,7 @@ import org.bukkit.Location; | ||||
| import org.bukkit.Material; | ||||
| import org.bukkit.Sound; | ||||
| import org.bukkit.World; | ||||
| import org.bukkit.entity.Entity; | ||||
| import org.bukkit.entity.LivingEntity; | ||||
| import org.bukkit.entity.Player; | ||||
| import org.bukkit.entity.*; | ||||
| import org.bukkit.inventory.EntityEquipment; | ||||
| import org.bukkit.inventory.EquipmentSlot; | ||||
| import org.bukkit.inventory.ItemStack; | ||||
| @@ -530,16 +529,24 @@ public class ReflectionManager { | ||||
|                 Class<?> clazz = getNmsClass("SoundCategory"); | ||||
|                 Enum[] enums = clazz != null ? (Enum[]) clazz.getEnumConstants() : null; | ||||
|                 for (Enum anEnum : enums != null ? enums : new Enum[0]) { | ||||
|                     if (anEnum.name().equals("MASTER")) return anEnum; | ||||
|                     if (anEnum.name().equals(category.toUpperCase())) return anEnum; | ||||
|                 } | ||||
|             } | ||||
|             return null; | ||||
|             return invoke; | ||||
|         } catch (Exception e) { | ||||
|             e.printStackTrace(); | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static Enum getSoundCategory(DisguiseType disguiseType) { | ||||
|         if (disguiseType == DisguiseType.PLAYER) return getSoundCategory("player"); | ||||
|         Class<? extends Entity> entityClass = disguiseType.getEntityType().getEntityClass(); | ||||
|         if (Monster.class.isAssignableFrom(entityClass)) return getSoundCategory("hostile"); | ||||
|         if (Ambient.class.isAssignableFrom(entityClass)) return getSoundCategory("ambient"); | ||||
|         return getSoundCategory("neutral"); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Creates the NMS object EnumItemSlot from an EquipmentSlot. | ||||
|      * | ||||
|   | ||||
		Reference in New Issue
	
	Block a user