-
Notifications
You must be signed in to change notification settings - Fork 8
/
KelpSound.java
87 lines (66 loc) · 1.93 KB
/
KelpSound.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package de.pxav.kelp.core.sound;
import de.pxav.kelp.core.version.KelpVersion;
import org.bukkit.Sound;
import java.util.ArrayList;
import java.util.Collection;
/**
* A class description goes here.
*
* @author pxav
*/
public enum KelpSound {
LEVEL_UP(KelpVersion.MC_1_8_0),
ITEM_BREAK(KelpVersion.MC_1_8_0),
ORB_PICKUP(KelpVersion.MC_1_8_0);
private KelpVersion since;
KelpSound(KelpVersion since) {
this.since = since;
}
public KelpVersion since() {
return since;
}
public static Collection<KelpSound> aboveVersion(KelpVersion version) {
Collection<KelpSound> output = new ArrayList<>();
if (version == KelpVersion.highestVersion()) {
return output;
}
for (KelpSound sound : KelpSound.values()) {
if (sound.since() == version) continue;
if (KelpVersion.higherVersion(version, sound.since()) == sound.since()) {
output.add(sound);
}
}
return output;
}
public static Collection<KelpSound> belowVersion(KelpVersion version) {
Collection<KelpSound> output = new ArrayList<>();
if (version == KelpVersion.lowestVersion()) {
return output;
}
for (KelpSound sound : KelpSound.values()) {
if (sound.since() == version) continue;
if (KelpVersion.lowerVersion(version, sound.since()) == sound.since()) {
output.add(sound);
}
}
return output;
}
public static Collection<KelpSound> matchesVersion(KelpVersion version) {
Collection<KelpSound> output = new ArrayList<>();
for (KelpSound sound : KelpSound.values()) {
if (sound.since() == version) {
output.add(sound);
}
}
return output;
}
public static Collection<KelpSound> includedIn(KelpVersion version) {
Collection<KelpSound> output = new ArrayList<>(belowVersion(version));
output.addAll(matchesVersion(version));
return output;
}
@Override
public String toString() {
return super.toString();
}
}