Add /dhelp disguisesound
This commit is contained in:
		| @@ -2,12 +2,15 @@ package me.libraryaddict.disguise.utilities.sounds; | ||||
|  | ||||
| import lombok.Getter; | ||||
| import me.libraryaddict.disguise.disguisetypes.Disguise; | ||||
| import me.libraryaddict.disguise.disguisetypes.DisguiseType; | ||||
| import me.libraryaddict.disguise.utilities.reflection.ReflectionManager; | ||||
| import org.apache.commons.lang.math.RandomUtils; | ||||
| import org.bukkit.Sound; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.LinkedHashMap; | ||||
| import java.util.Map; | ||||
| import java.util.Random; | ||||
|  | ||||
| /** | ||||
|  * Created by libraryaddict on 23/05/2020. | ||||
| @@ -26,9 +29,17 @@ public class SoundGroup { | ||||
|     private float damageSoundVolume = 1F; | ||||
|     @Getter | ||||
|     private final LinkedHashMap<Object, SoundType> disguiseSounds = new LinkedHashMap<>(); | ||||
|     private boolean customSounds; | ||||
|  | ||||
|     public SoundGroup(String name) { | ||||
|         groups.put(name, this); | ||||
|  | ||||
|         try { | ||||
|             DisguiseType.valueOf(name); | ||||
|         } | ||||
|         catch (Exception ex) { | ||||
|             customSounds = true; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void addSound(Object sound, SoundType type) { | ||||
| @@ -60,6 +71,10 @@ public class SoundGroup { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         if (customSounds) { | ||||
|             return getRandomSound(type); | ||||
|         } | ||||
|  | ||||
|         for (Map.Entry<Object, SoundType> entry : disguiseSounds.entrySet()) { | ||||
|             if (entry.getValue() != type) { | ||||
|                 continue; | ||||
| @@ -71,6 +86,29 @@ public class SoundGroup { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     private Object getRandomSound(SoundType type) { | ||||
|         if (type == null) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         Object[] sounds = new Object[disguiseSounds.size()]; | ||||
|         int i = 0; | ||||
|  | ||||
|         for (Map.Entry<Object, SoundType> entry : disguiseSounds.entrySet()) { | ||||
|             if (entry.getValue() != type) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             sounds[i++] = entry.getKey(); | ||||
|         } | ||||
|  | ||||
|         if (i == 0) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         return sounds[RandomUtils.nextInt(i)]; | ||||
|     } | ||||
|  | ||||
|     public SoundType getSound(Object sound) { | ||||
|         if (sound == null) { | ||||
|             return null; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user