package com.owlmaddie.utils; import java.util.Arrays; import java.util.List; import java.util.Random; /** * The {@code Randomizer} class provides easy functions for generating a variety of different random numbers * and phrases used by this mod. */ public class Randomizer { public enum RandomType { NO_RESPONSE, ERROR, ADJECTIVE, FREQUENCY } private static List<String> noResponseMessages = Arrays.asList( "<no response>", "<silence>", "<stares>", "<blinks>", "<looks away>", "<sighs>", "<shrugs>", "<taps foot>", "<yawns>", "<examines nails>", "<whistles softly>", "<shifts uncomfortably>", "<glances around>", "<pretends not to hear>", "<hums quietly>", "<fiddles with something>", "<gazes into the distance>", "<smirks>", "<raises an eyebrow>", "<clears throat>", "<peers over your shoulder>", "<fakes a smile>", "<checks the time>", "<doodles in the air>", "<mutters under breath>", "<adjusts an imaginary tie>", "<counts imaginary stars>", "<plays with a nonexistent pet>" ); private static List<String> errorResponseMessages = Arrays.asList( "Seems like my words got lost in the End. Check out http://discord.creaturechat.com for clues!", "Oops! My speech bubble popped. Need help? Visit http://discord.creaturechat.com", "I might've eaten a bad Command Block. Help me out at http://discord.creaturechat.com!", "My words are on strike. More info? http://discord.creaturechat.com", "I think a Creeper blew up my script. Instructions? http://discord.creaturechat.com", "BRB, asking a villager for directions to http://discord.creaturechat.com", "It’s not you, it’s my API key. Let's regroup at http://discord.creaturechat.com", "I tried to speak, but it was a critical miss. Help at http://discord.creaturechat.com", "Words are hard. Come chat at http://discord.creaturechat.com", "I must've left my responses in my other pants. See http://discord.creaturechat.com", "Shh... I’m hiding from an invalid API key. Join the hunt at http://discord.creaturechat.com", "I’d tell you, but then I’d have to respawn. Meet me at http://discord.creaturechat.com", "Error 404: Response not found. Maybe it’s at http://discord.creaturechat.com?", "I'm speechless, literally. Let's troubleshoot at http://discord.creaturechat.com", "Looks like my connection got lost in the Nether. Can you help? http://discord.creaturechat.com", "I forgot what I was saying, but http://discord.creaturechat.com remembers.", "Are my words mining without a pickaxe? Dig up some help at http://discord.creaturechat.com", "Sorry, my parrot ate the response. Teach it better at http://discord.creaturechat.com", "My magic mirror says: 'Better answers found at http://discord.creaturechat.com'", "This message is temporarily out of order. Order yours at http://discord.creaturechat.com" ); private static List<String> characterAdjectives = Arrays.asList( "mystical", "fiery", "ancient", "cursed", "ethereal", "clumsy", "stealthy", "legendary", "toxic", "enigmatic", "celestial", "rambunctious", "shadowy", "brave", "screaming", "radiant", "savage", "whimsical", "positive", "turbulent", "ominous", "jubilant", "arcane", "hopeful", "rugged", "venomous", "timeworn", "heinous", "friendly", "humorous", "silly", "goofy", "irate", "furious", "wrathful", "nefarious", "sinister", "malevolent", "sly", "roguish", "deceitful", "untruthful", "loving", "noble", "dignified", "righteous", "defensive", "protective", "heroic", "amiable", "congenial", "happy", "sarcastic", "funny", "short", "zany", "cooky", "wild", "fearless insane", "cool", "chill", "cozy", "comforting", "stern", "stubborn", "scatterbrain", "scaredy", "aloof", "gullible", "mischievous", "prankster", "trolling", "clingy", " manipulative", "weird", "famous", "persuasive", "sweet", "wholesome", "innocent", "annoying", "trusting", "hyper", "egotistical", "slow", "obsessive", "compulsive", "impulsive", "unpredictable", "wildcard", "stuttering", "hypochondriac", "hypocritical", "optimistic", "overconfident", "jumpy", "brief", "flighty", "visionary", "adorable", "sparkly", "bubbly", "unstable", "sad", "angry", "bossy", "altruistic", "quirky", "nostalgic", "essentially", "emotional", "enthusiastic", "unusual", "conspirator" ); private static List<String> frequencyTerms = Arrays.asList( "always", "frequently", "usually", "often", "sometimes", "occasionally", "rarely", "seldom", "almost never", "never" ); // Get random no response message public static String getRandomMessage(RandomType messageType) { Random random = new Random(); List<String> messages = null; if (messageType.equals(RandomType.ERROR)) { messages = errorResponseMessages; } else if (messageType.equals(RandomType.NO_RESPONSE)) { messages = noResponseMessages; } else if (messageType.equals(RandomType.ADJECTIVE)) { messages = characterAdjectives; } else if (messageType.equals(RandomType.FREQUENCY)) { messages = frequencyTerms; } int index = random.nextInt(messages.size()); return messages.get(index).trim(); } public static String RandomLetter() { // Return random letter between 'A' and 'Z' int randomNumber = RandomNumber(26); return String.valueOf((char) ('A' + randomNumber)); } public static int RandomNumber(int max) { // Generate a random integer between 0 and max (inclusive) Random random = new Random(); return random.nextInt(max); } }