Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.dadospeedy.myserverseasons.utils;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- import org.bukkit.Bukkit;
- import org.bukkit.SoundCategory;
- import org.bukkit.entity.Player;
- import me.dadospeedy.myserverseasons.MyServerSeasons;
- public class SoundLogic {
- static short status;
- static boolean currentStatus;
- static List<String> whatIsPlaying = new ArrayList<String>();
- static Random random = new Random();
- public static void ambientSounds() {
- if (currentStatus) {
- if (status == 0) {
- seasonAmbienceEnd();
- } else {
- caveAmbience();
- }
- } else {
- if (status == 1) {
- if (getCurrentTick() < 12000) {
- seasonDayCycleAmbienceStartFromSilence();
- } else {
- seasonNightCycleAmbienceStartFromSilence();
- }
- } else {
- if (getCurrentTick() < 12000) {
- seasonDayCycleAmbienceMid();
- } else {
- seasonNightCycleAmbienceMid();
- }
- }
- }
- }
- private static void broadcast(String msg) {
- for(Player p : Bukkit.getOnlinePlayers()) {
- p.sendMessage(msg);
- }
- }
- static void seasonDayCycleAmbienceMid() {
- int size = whatIsPlaying.size();
- seasonDayCycleAmbienceStartFromSilence();
- String season = getSeason();
- switch (season) {
- case "spring":
- for (int i = 0; i < size; i++) {
- switch (whatIsPlaying.get(i)) {
- case "S_birds":
- play("M_birds", "E_birds", 600);
- break;
- case "M_birds":
- play("M_birds", "E_birds", 500);
- break;
- case "S_birds_2":
- play("M_birds_2", "E_birds_2", 600);
- break;
- case "M_birds_2":
- play("M_birds_2", "E_birds_2", 500);
- break;
- case "S_leaf_breeze_warm":
- play("M_leaf_breeze_warm", "E_leaf_breeze_warm", 800);
- break;
- case "M_leaf_breeze_warm":
- play("M_leaf_breeze_warm", "E_leaf_breeze_warm", 700);
- break;
- case "S_calm_birds_insects":
- play("M_calm_birds_insects", "E_calm_birds_insects", 800);
- break;
- case "M_calm_birds_insects":
- play("M_calm_birds_insects", "E_calm_birds_insects", 700);
- break;
- case "S_calm_forest":
- play("M_calm_forest", "E_calm_forest", 800);
- break;
- case "M_calm_forest":
- play("M_calm_forest", "E_calm_forest", 700);
- break;
- default:
- playEndSound(whatIsPlaying.get(i));
- }
- }
- break;
- case "summer":
- for (int i = 0; i < size; i++) {
- switch (whatIsPlaying.get(i)) {
- case "S_leaf_breeze_warm":
- play("M_leaf_breeze_warm", "E_leaf_breeze_warm", 800);
- break;
- case "M_leaf_breeze_warm":
- play("M_leaf_breeze_warm", "E_leaf_breeze_warm", 700);
- break;
- case "S_insect_leaf_breeze_warm":
- play("M_insect_leaf_breeze_warm", "E_insect_leaf_breeze_warm", 800);
- break;
- case "M_insect_leaf_breeze_warm":
- play("M_insect_leaf_breeze_warm", "E_insect_leaf_breeze_warm", 700);
- break;
- case "S_calm_forest":
- play("M_calm_forest", "E_calm_forest", 800);
- break;
- case "M_calm_forest":
- play("M_calm_forest", "E_calm_forest", 700);
- break;
- case "S_birds_2":
- play("M_birds_2", "E_birds_2", 600);
- break;
- case "M_birds_2":
- play("M_birds_2", "E_birds_2", 500);
- break;
- default:
- playEndSound(whatIsPlaying.get(i));
- }
- }
- break;
- case "fall":
- for (int i = 0; i < size; i++) {
- switch (whatIsPlaying.get(i)) {
- case "S_calm_forest":
- play("M_calm_forest", "E_calm_forest", 800);
- break;
- case "M_calm_forest":
- play("M_calm_forest", "E_calm_forest", 700);
- break;
- case "S_calm_birds_insects":
- play("M_calm_birds_insects", "E_calm_birds_insects", 600);
- break;
- case "M_calm_birds_insects":
- play("M_calm_birds_insects", "E_calm_birds_insects", 500);
- break;
- case "S_calm_cold_wind":
- play("M_calm_cold_wind", "E_calm_cold_wind", 800);
- break;
- case "M_calm_cold_wind":
- play("M_calm_cold_wind", "E_calm_cold_wind", 700);
- break;
- default:
- playEndSound(whatIsPlaying.get(i));
- }
- }
- break;
- case "winter":
- for (int i = 0; i < size; i++) {
- switch (whatIsPlaying.get(i)) {
- case "S_calm_forest":
- play("M_calm_forest", "E_calm_forest", 800);
- break;
- case "M_calm_forest":
- play("M_calm_forest", "E_calm_forest", 700);
- break;
- case "S_calm_cold_wind":
- play("M_calm_cold_wind", "E_calm_cold_wind", 800);
- break;
- case "M_calm_cold_wind":
- play("M_calm_cold_wind", "E_calm_cold_wind", 700);
- break;
- case "S_cold_wind":
- play("M_cold_wind", "E_cold_wind", 800);
- break;
- case "M_cold_wind":
- play("M_cold_wind", "E_cold_wind", 700);
- break;
- case "S_cold_wind_2":
- play("M_cold_wind_2", "E_cold_wind_2", 800);
- break;
- case "M_cold_wind_2":
- play("M_cold_wind_2", "E_cold_wind_2", 700);
- break;
- default:
- playEndSound(whatIsPlaying.get(i));
- }
- }
- break;
- }
- clearlast(size);
- status = 0;
- }
- static void seasonNightCycleAmbienceMid() {
- int size = whatIsPlaying.size();
- seasonNightCycleAmbienceStartFromSilence();
- String season = getSeason();
- switch (season) {
- case "spring":
- for (int i = 0; i < size; i++) {
- switch (whatIsPlaying.get(i)) {
- case "S_leaf_breeze_warm":
- play("M_leaf_breeze_warm", "E_leaf_breeze_warm", 800);
- break;
- case "M_leaf_breeze_warm":
- play("M_leaf_breeze_warm", "E_leaf_breeze_warm", 700);
- break;
- case "S_calm_birds_insects":
- play("M_calm_birds_insects", "E_calm_birds_insects", 600);
- break;
- case "M_calm_birds_insects":
- play("M_calm_birds_insects", "E_calm_birds_insects", 500);
- break;
- case "S_calm_forest":
- play("M_calm_forest", "E_calm_forest", 600);
- break;
- case "M_calm_forest":
- play("M_calm_forest", "E_calm_forest", 500);
- break;
- case "S_cricket":
- play("M_cricket", "E_cricket", 600);
- break;
- case "M_cricket":
- play("M_cricket", "E_cricket", 500);
- break;
- default:
- playEndSound(whatIsPlaying.get(i));
- }
- }
- break;
- case "summer":
- for (int i = 0; i < size; i++) {
- switch (whatIsPlaying.get(i)) {
- case "S_leaf_breeze_warm":
- play("M_leaf_breeze_warm", "E_leaf_breeze_warm", 800);
- break;
- case "M_leaf_breeze_warm":
- play("M_leaf_breeze_warm", "E_leaf_breeze_warm", 700);
- break;
- case "S_calm_birds_insects":
- play("M_calm_birds_insects", "E_calm_birds_insects", 500);
- break;
- case "M_calm_birds_insects":
- play("M_calm_birds_insects", "E_calm_birds_insects", 500);
- break;
- case "S_calm_forest":
- play("M_calm_forest", "E_calm_forest", 800);
- break;
- case "M_calm_forest":
- play("M_calm_forest", "E_calm_forest", 700);
- break;
- case "S_cricket":
- play("M_cricket", "E_cricket", 600);
- break;
- case "M_cricket":
- play("M_cricket", "E_cricket", 500);
- break;
- default:
- playEndSound(whatIsPlaying.get(i));
- }
- }
- break;
- case "fall":
- for (int i = 0; i < size; i++) {
- switch (whatIsPlaying.get(i)) {
- case "S_calm_forest":
- play("M_calm_forest", "E_calm_forest", 800);
- break;
- case "M_calm_forest":
- play("M_calm_forest", "E_calm_forest", 700);
- break;
- case "S_calm_cold_wind":
- play("M_calm_cold_wind", "E_calm_cold_wind", 500);
- break;
- case "M_calm_cold_wind":
- play("M_calm_cold_wind", "E_calm_cold_wind", 500);
- break;
- case "S_cold_wind":
- play("M_cold_wind", "E_cold_wind", 500);
- break;
- case "M_cold_wind":
- play("M_cold_wind", "E_cold_wind", 500);
- break;
- default:
- playEndSound(whatIsPlaying.get(i));
- }
- }
- break;
- case "winter":
- for (int i = 0; i < size; i++) {
- switch (whatIsPlaying.get(i)) {
- case "S_calm_cold_wind":
- play("M_calm_cold_wind", "E_calm_cold_wind", 500);
- break;
- case "M_calm_cold_wind":
- play("M_calm_cold_wind", "E_calm_cold_wind", 500);
- break;
- case "S_cold_wind":
- play("M_cold_wind", "E_cold_wind", 500);
- break;
- case "M_cold_wind":
- play("M_cold_wind", "E_cold_wind", 500);
- break;
- case "S_cold_wind_2":
- play("M_cold_wind_2", "E_cold_wind_2", 500);
- break;
- case "M_cold_wind_2":
- play("M_cold_wind_2", "E_cold_wind_2", 500);
- break;
- default:
- playEndSound(whatIsPlaying.get(i));
- }
- }
- break;
- }
- clearlast(size);
- status = 0;
- }
- static void seasonDayCycleAmbienceStartFromSilence() {
- String season = getSeason();
- switch (season) {
- case "spring":
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_birds"))) {
- play("S_birds", 300);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_birds_2"))) {
- play("S_birds_2", 300);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_leaf_breeze_warm"))) {
- play("S_leaf_breeze_warm", 300);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_birds_insects"))) {
- play("S_calm_birds_insects", 300);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_forest"))) {
- play("S_calm_forest", 300);
- }
- break;
- case "summer":
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_leaf_breeze_warm"))
- || !whatIsPlaying.stream().anyMatch(n -> n.endsWith("insect_leaf_breeze_warm"))) {
- play("S_leaf_breeze_warm", 300);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("insect_leaf_breeze_warm"))
- || !whatIsPlaying.stream().anyMatch(n -> n.endsWith("_leaf_breeze_warm"))) {
- play("S_insect_leaf_breeze_warm", 300);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_birds_2"))) {
- play("S_birds_2", 300);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_forest"))) {
- play("S_calm_forest", 300);
- }
- break;
- case "fall":
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_forest"))) {
- play("S_calm_forest", 300);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_birds_insects"))) {
- play("S_calm_birds_insects", 300);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_cold_wind"))) {
- play("S_calm_cold_wind", 100);
- }
- break;
- case "winter":
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_forest"))) {
- play("S_calm_forest", 100);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_cold_wind"))) {
- play("S_calm_cold_wind", 100);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_cold_wind"))) {
- play("S_cold_wind", 50);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_cold_wind_2"))) {
- play("S_cold_wind_2", 50);
- }
- break;
- }
- status = 0;
- }
- static void seasonNightCycleAmbienceStartFromSilence() {
- String season = getSeason();
- switch (season) {
- case "spring":
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_leaf_breeze_warm"))) {
- play("S_leaf_breeze_warm", 30);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_birds_insects"))) {
- play("S_calm_birds_insects", 50);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_forest"))) {
- play("S_calm_forest", 100);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_cricket"))) {
- play("S_cricket", 200);
- }
- break;
- case "summer":
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_leaf_breeze_warm"))) {
- play("S_leaf_breeze_warm", 30);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_birds_insects"))) {
- play("S_calm_birds_insects", 50);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_forest"))) {
- play("S_calm_forest", 50);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_cricket"))) {
- play("S_cricket", 200);
- }
- break;
- case "fall":
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_forest"))) {
- play("S_calm_forest", 30);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_cold_wind"))) {
- play("S_calm_cold_wind", 200);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_cold_wind_2"))) {
- play("S_cold_wind_2", 50);
- }
- break;
- case "winter":
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_calm_cold_wind"))) {
- play("S_calm_cold_wind", 100);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_cold_wind"))) {
- play("S_cold_wind", 50);
- }
- if (!whatIsPlaying.stream().anyMatch(n -> n.endsWith("_cold_wind_2"))) {
- play("S_cold_wind_2", 50);
- }
- break;
- }
- status = 0;
- }
- static void caveAmbience() {
- // -> Spiele sehr selten die zur Jahreszeit gehörigen Cave Tunes (5% maybe?)
- String season = getSeason();
- switch (season) {
- case "spring":
- play("SINGLE_spring_cave", 50);
- break;
- case "summer":
- play("SINGLE_summer_cave", 50);
- break;
- case "fall":
- play("SINGLE_fall_cave", 50);
- break;
- case "winter":
- play("SINGLE_winter_cave", 16);
- play("SINGLE_winter_cave_2", 16);
- play("SINGLE_winter_cave_3", 16);
- break;
- }
- status = 1;
- }
- private static void playEndSound(String sound) {
- if (sound.startsWith("M_") || sound.startsWith("S_")) {
- play("E_" + sound.substring(2));
- }
- }
- static void seasonAmbienceEnd() {
- for (String s : whatIsPlaying) {
- playEndSound(s);
- }
- }
- private static long getCurrentTick() {
- return Bukkit.getWorld(MyServerSeasons.currentSeason.getWorld()).getTime();
- }
- private static String getSeason() {
- return MyServerSeasons.currentSeason.toString().toLowerCase();
- }
- static void play(String name, String name2, int probabilityForTheFirstToPlay) {
- if (random.nextInt(1000) < probabilityForTheFirstToPlay) {
- play(name);
- } else {
- play(name2);
- }
- }
- static void play(String name) {
- play(name, 1001);
- }
- static void play(String name, int probability) {
- if (random.nextInt(1000) < probability) {
- broadcast("§aNow playing: §6" + name);
- for(Player p : Bukkit.getOnlinePlayers()) {
- p.playSound(p.getLocation(), "ambient." + name.toLowerCase(), SoundCategory.VOICE, 1000, 1);
- }
- whatIsPlaying.add(name);
- }
- }
- static void clearlast(int size) {
- for (int i = 0; i < size; i++) {
- whatIsPlaying.remove(0);
- }
- }
- static void setStatus(short status) {
- SoundLogic.status = status;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement