70 lines
2.5 KiB
Java
70 lines
2.5 KiB
Java
package tc.oc.lobby.bukkit;
|
|
|
|
import me.anxuiz.settings.*;
|
|
import me.anxuiz.settings.bukkit.PlayerSettingCallback;
|
|
import me.anxuiz.settings.bukkit.PlayerSettings;
|
|
import me.anxuiz.settings.types.EnumType;
|
|
import org.bukkit.entity.Player;
|
|
import tc.oc.commons.bukkit.hologram.Hologram;
|
|
import tc.oc.commons.bukkit.hologram.content.HologramAnimation;
|
|
|
|
import javax.annotation.Nonnull;
|
|
|
|
public class Settings {
|
|
|
|
private final Lobby plugin;
|
|
|
|
public Settings(Lobby plugin) {
|
|
this.plugin = plugin;
|
|
}
|
|
|
|
public void register() {
|
|
SettingRegistry registry = PlayerSettings.getRegistry();
|
|
SettingCallbackManager callbacks = PlayerSettings.getCallbackManager();
|
|
|
|
registry.register(HOLOGRAMS);
|
|
/* 1.8 - disable
|
|
callbacks.addCallback(HOLOGRAMS, new PlayerSettingCallback() {
|
|
@Override
|
|
public void notifyChange(@Nonnull Player player, @Nonnull Setting setting, @Nonnull Object o, @Nonnull Object o2) {
|
|
HologramOption option = (HologramOption) o2;
|
|
|
|
for (Hologram hologram : plugin.holograms) {
|
|
if (option == Settings.HologramOption.ALL || (!(hologram.getContent() instanceof HologramAnimation) && option == Settings.HologramOption.STATIC)) {
|
|
hologram.show(player);
|
|
} else {
|
|
hologram.hide(player);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
*/
|
|
}
|
|
|
|
public static enum HologramOption {ALL, STATIC, NONE}
|
|
|
|
public static final Setting HOLOGRAMS = new SettingBuilder()
|
|
.name("Holograms").alias("hologram").alias("holo")
|
|
.summary("Enables the visibility of holograms")
|
|
.type(
|
|
new EnumType<HologramOption>("hologram options", HologramOption.class) {
|
|
// migration
|
|
@Override
|
|
public Object parse(String raw) throws TypeParseException {
|
|
try {
|
|
return super.parse(raw);
|
|
} catch (TypeParseException e) {
|
|
if (raw.equalsIgnoreCase("true")) {
|
|
return HologramOption.STATIC;
|
|
} else if (raw.equalsIgnoreCase("false")) {
|
|
return HologramOption.NONE;
|
|
} else {
|
|
throw e;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
)
|
|
.defaultValue(HologramOption.NONE).get();
|
|
}
|