I am trying to get a random Enum of similar type. For example, I have the Enums TRACK_PLAY_1
, TRACK_PLAY_2
, TRACK_PAUSE_1
. I wish to get a random TRACK_PLAY
enum.
I'm currently using EnumSets to categorize the Enums. e.g. TRACK_PLAY
from TRACK_PAUSE
.
Here's what I have so far:
package com.TobyMellor.smash.core;
import java.util.EnumSet;
public enum SoundEffect {
SMASH_1("smash_1"),
SMASH_2("smash_2"),
SMASH_3("smash_3"),
TRACK_PAUSED_1("track_paused_1"),
TRACK_PAUSED_2("track_paused_2"),
TRACK_PAUSED_3("track_paused_3"),
TRACK_PAUSED_4("track_paused_4"),
TRACK_PAUSED_5("track_paused_5"),
TRACK_PAUSED_6("track_paused_6"),
TRACK_PLAY_1("track_play_1"),
TRACK_PLAY_2("track_play_2"),
TRACK_PLAY_3("track_play_3"),
TRACK_PLAY_4("track_play_4"),
TRACK_SKIPPED_1("track_skipped_1"),
TRACK_SKIPPED_2("track_skipped_2"),
TRACK_SKIPPED_3("track_skipped_3"),
TRACK_SKIPPED_4("track_skipped_4"),
TRACK_SKIPPED_5("track_skipped_5");
public static EnumSet<SoundEffect> SMASH = EnumSet.of(SMASH_1, SMASH_2, SMASH_3);
public static EnumSet<SoundEffect> TRACK_PAUSED = EnumSet.of(TRACK_PAUSED_1, TRACK_PAUSED_2, TRACK_PAUSED_3, TRACK_PAUSED_4, TRACK_PAUSED_5, TRACK_PAUSED_6);
public static EnumSet<SoundEffect> TRACK_PLAY = EnumSet.of(TRACK_PLAY_1, TRACK_PLAY_2, TRACK_PLAY_3, TRACK_PLAY_4);
public static EnumSet<SoundEffect> TRACK_SKIPPED = EnumSet.of(TRACK_SKIPPED_1, TRACK_SKIPPED_2, TRACK_SKIPPED_3, TRACK_SKIPPED_4, TRACK_SKIPPED_5);
private final String testSound;
SoundEffect(String bukkitSound) { this.testSound = testSound; }
public String getTestSound() { return testSound; }
}
I'd like to be able to get the Enums by something like: SOUNDEFFECT.TRACK_PLAY[randomInt]
which will return my SOUNDEFFECT.TRACK_PLAY_randomInt
.
Any help is greatly appreciated.
Thanks!
Toby.