0

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.

Toby Mellor
  • 8,093
  • 8
  • 34
  • 58

0 Answers0