mirror of
https://github.com/SPAWNRYS-ban/FUCK-CustomDiscs.git
synced 2025-12-10 13:30:24 +05:00
Update CustomDiscs.java
Ru:удаление проверки paper En:deleting the paper check
This commit is contained in:
@@ -31,260 +31,393 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public final class CustomDiscs extends JavaPlugin {
|
||||
static CustomDiscs instance;
|
||||
|
||||
@Nullable
|
||||
private VoicePlugin voicechatPlugin;
|
||||
private Logger pluginLogger;
|
||||
// RU: Статическая переменная для хранения экземпляра плагина
|
||||
// EN: Static variable to store the plugin instance
|
||||
static CustomDiscs instance;
|
||||
|
||||
// RU: Плагин голосового чата (может быть null)
|
||||
// EN: Voice chat plugin (can be null)
|
||||
@Nullable
|
||||
private VoicePlugin voicechatPlugin;
|
||||
|
||||
// RU: Логгер плагина
|
||||
// EN: Plugin logger
|
||||
private Logger pluginLogger;
|
||||
|
||||
// RU: Режим отладки
|
||||
// EN: Debug mode
|
||||
private static boolean debugMode = false;
|
||||
public static YamlConfiguration LANG;
|
||||
public static File LANG_FILE;
|
||||
public static boolean musicDiscEnable = true;
|
||||
public static boolean musicDiscPlayingEnable = true;
|
||||
public float musicDiscDistance;
|
||||
public float musicDiscMaxDistance;
|
||||
public float musicDiscVolume;
|
||||
public static boolean customHornEnable = true;
|
||||
public static boolean customHornPlayingEnable = true;
|
||||
public float customHornDistance;
|
||||
public float customHornMaxDistance;
|
||||
public int hornCooldown;
|
||||
public int hornMaxCooldown;
|
||||
public static boolean customHeadEnable = true;
|
||||
public static boolean customHeadPlayingEnable = true;
|
||||
public float customHeadDistance;
|
||||
public float customHeadMaxDistance;
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
CustomDiscs.instance = this;
|
||||
CommandAPI.onLoad(new CommandAPIBukkitConfig(this).verboseOutput(true));
|
||||
//To get CommandAPI working on newer MC Release - for development
|
||||
//CommandAPI.onLoad(new CommandAPIBukkitConfig(this).verboseOutput(true).beLenientForMinorVersions(true));
|
||||
new CustomDiscCommand(this).register("customdiscs");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
pluginLogger = getLogger();
|
||||
|
||||
CommandAPI.onEnable();
|
||||
|
||||
BukkitVoicechatService service = getServer().getServicesManager().load(BukkitVoicechatService.class);
|
||||
|
||||
this.saveDefaultConfig();
|
||||
loadLang();
|
||||
|
||||
// Config initializer section
|
||||
debugMode = getConfig().getBoolean("debugMode", false);
|
||||
musicDiscEnable = getConfig().getBoolean("music-disc-enable");
|
||||
musicDiscPlayingEnable = getConfig().getBoolean("music-disc-playing-enable");
|
||||
musicDiscDistance = getConfig().getInt("music-disc-distance");
|
||||
musicDiscMaxDistance = getConfig().getInt("music-disc-max-distance");
|
||||
musicDiscVolume = Float.parseFloat(Objects.requireNonNull(getConfig().getString("music-disc-volume")));
|
||||
customHornEnable = getConfig().getBoolean("custom-horn-enable");
|
||||
customHornPlayingEnable = getConfig().getBoolean("custom-horn-playing-enable");
|
||||
customHornDistance = getConfig().getInt("custom-horn-distance");
|
||||
customHornMaxDistance = getConfig().getInt("custom-horn-max-distance");
|
||||
hornCooldown = getConfig().getInt("horn-cooldown");
|
||||
hornMaxCooldown = getConfig().getInt("horn-max-cooldown");
|
||||
customHeadEnable = getConfig().getBoolean("custom-head-enable");
|
||||
customHeadPlayingEnable = getConfig().getBoolean("custom-head-playing-enable");
|
||||
customHeadDistance = getConfig().getInt("custom-head-distance");
|
||||
customHeadMaxDistance = getConfig().getInt("custom-head-max-distance");
|
||||
|
||||
// Checking server version and display console message in case the server is not supported
|
||||
ServerVersionChecker serverVersionChecker = new ServerVersionChecker(this);
|
||||
serverVersionChecker.checkVersion();
|
||||
|
||||
File musicData = new File(this.getDataFolder(), "musicdata");
|
||||
if (!(musicData.exists())) {
|
||||
musicData.mkdirs();
|
||||
}
|
||||
|
||||
if (service != null) {
|
||||
voicechatPlugin = new VoicePlugin();
|
||||
service.registerPlugin(voicechatPlugin);
|
||||
pluginLogger.info("Successfully registered CustomDiscs plugin");
|
||||
} else {
|
||||
pluginLogger.info("Failed to register CustomDiscs plugin");
|
||||
}
|
||||
|
||||
if (isMusicDiscEnable()) {
|
||||
getServer().getPluginManager().registerEvents(new JukeBox(), this);
|
||||
getServer().getPluginManager().registerEvents(new HopperManager(), this);
|
||||
}
|
||||
if (isCustomHeadEnable()) { getServer().getPluginManager().registerEvents(new HeadPlay(), this); }
|
||||
if (isCustomHornEnable()) { getServer().getPluginManager().registerEvents(new HornPlay(), this); }
|
||||
|
||||
// To avoid any "0" values, set it to 1.
|
||||
if (hornCooldown <= 0) {
|
||||
hornCooldown = 1;
|
||||
}
|
||||
if (hornMaxCooldown <= 0) {
|
||||
hornMaxCooldown = 1;
|
||||
}
|
||||
|
||||
ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager();
|
||||
protocolManager.addPacketListener(new PacketAdapter(this, ListenerPriority.NORMAL, PacketType.Play.Server.WORLD_EVENT) {
|
||||
@Override
|
||||
public void onPacketSending(PacketEvent event) {
|
||||
PacketContainer packet = event.getPacket();
|
||||
|
||||
if (packet.getIntegers().read(0).toString().equals("1010")) {
|
||||
if (!isMusicDiscEnable()) { return; }
|
||||
Jukebox jukebox = (Jukebox) packet.getBlockPositionModifier().read(0).toLocation(event.getPlayer().getWorld()).getBlock().getState();
|
||||
|
||||
if (!jukebox.getRecord().hasItemMeta()) return;
|
||||
|
||||
if (jukebox.getRecord().getItemMeta().getPersistentDataContainer().has(new NamespacedKey(this.plugin, "customdisc"), PersistentDataType.STRING)) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
//Start the jukebox state manager.
|
||||
//This keeps the jukebox powered while custom song is playing,
|
||||
//which perfectly emulates the vanilla behavior of discs.
|
||||
JukeboxStateManager.start(jukebox);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
CommandAPI.onDisable();
|
||||
if (voicechatPlugin != null) {
|
||||
getServer().getServicesManager().unregister(voicechatPlugin);
|
||||
pluginLogger.info("Successfully unregistered CustomDiscs plugin");
|
||||
}
|
||||
}
|
||||
|
||||
public static CustomDiscs getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
// RU: Конфигурация файла lang.yml
|
||||
// EN: Configuration for lang.yml file
|
||||
public static YamlConfiguration LANG;
|
||||
|
||||
// RU: Файл lang.yml
|
||||
// EN: lang.yml file
|
||||
public static File LANG_FILE;
|
||||
|
||||
// RU: Включение музыкальных дисков
|
||||
// EN: Enable music discs
|
||||
public static boolean musicDiscEnable = true;
|
||||
|
||||
// RU: Включение проигрывания музыкальных дисков
|
||||
// EN: Enable music disc playing
|
||||
public static boolean musicDiscPlayingEnable = true;
|
||||
|
||||
// RU: Дистанция слышимости музыкальных дисков
|
||||
// EN: Music disc hearing distance
|
||||
public float musicDiscDistance;
|
||||
|
||||
// RU: Максимальная дистанция слышимости музыкальных дисков
|
||||
// EN: Maximum music disc hearing distance
|
||||
public float musicDiscMaxDistance;
|
||||
|
||||
// RU: Громкость музыкальных дисков
|
||||
// EN: Music disc volume
|
||||
public float musicDiscVolume;
|
||||
|
||||
// RU: Включение кастомных горнов
|
||||
// EN: Enable custom horns
|
||||
public static boolean customHornEnable = true;
|
||||
|
||||
// RU: Включение проигрывания кастомных горнов
|
||||
// EN: Enable custom horn playing
|
||||
public static boolean customHornPlayingEnable = true;
|
||||
|
||||
// RU: Дистанция слышимости кастомных горнов
|
||||
// EN: Custom horn hearing distance
|
||||
public float customHornDistance;
|
||||
|
||||
// RU: Максимальная дистанция слышимости кастомных горнов
|
||||
// EN: Maximum custom horn hearing distance
|
||||
public float customHornMaxDistance;
|
||||
|
||||
// RU: Кулдаун горна
|
||||
// EN: Horn cooldown
|
||||
public int hornCooldown;
|
||||
|
||||
// RU: Максимальный кулдаун горна
|
||||
// EN: Maximum horn cooldown
|
||||
public int hornMaxCooldown;
|
||||
|
||||
// RU: Включение кастомных голов
|
||||
// EN: Enable custom heads
|
||||
public static boolean customHeadEnable = true;
|
||||
|
||||
// RU: Включение проигрывания кастомных голов
|
||||
// EN: Enable custom head playing
|
||||
public static boolean customHeadPlayingEnable = true;
|
||||
|
||||
// RU: Дистанция слышимости кастомных голов
|
||||
// EN: Custom head hearing distance
|
||||
public float customHeadDistance;
|
||||
|
||||
// RU: Максимальная дистанция слышимости кастомных голов
|
||||
// EN: Maximum custom head hearing distance
|
||||
public float customHeadMaxDistance;
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
// RU: Сохранение экземпляра плагина
|
||||
// EN: Store the plugin instance
|
||||
CustomDiscs.instance = this;
|
||||
|
||||
/**
|
||||
* Load the lang.yml file.
|
||||
*/
|
||||
public void loadLang() {
|
||||
File lang = new File(getDataFolder(), "lang.yml");
|
||||
if (!lang.exists()) {
|
||||
try {
|
||||
getDataFolder().mkdir();
|
||||
lang.createNewFile();
|
||||
InputStream defConfigStream = this.getResource("lang.yml");
|
||||
if (defConfigStream != null) {
|
||||
copyInputStreamToFile(defConfigStream, lang);
|
||||
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(lang);
|
||||
defConfig.save(lang);
|
||||
Lang.setFile(defConfig);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
pluginLogger.severe("Failed to create lang.yml for CustomDiscs.");
|
||||
pluginLogger.severe("Now disabling...");
|
||||
this.setEnabled(false); // Without it loaded, we can't send them messages
|
||||
if (isDebugMode()) {
|
||||
pluginLogger.log(Level.SEVERE, "Exception output: ", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
YamlConfiguration conf = YamlConfiguration.loadConfiguration(lang);
|
||||
for (Lang item : Lang.values()) {
|
||||
if (conf.getString(item.getPath()) == null) {
|
||||
conf.set(item.getPath(), item.getDefault());
|
||||
}
|
||||
}
|
||||
Lang.setFile(conf);
|
||||
LANG = conf;
|
||||
LANG_FILE = lang;
|
||||
try {
|
||||
conf.save(getLangFile());
|
||||
} catch (IOException e) {
|
||||
pluginLogger.warning("Failed to save lang.yml for CustomDiscs");
|
||||
pluginLogger.warning("Now disabling...");
|
||||
if (isDebugMode()) {
|
||||
pluginLogger.log(Level.SEVERE, "Exception output: ", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the lang.yml config.
|
||||
*
|
||||
* @return The lang.yml config.
|
||||
*/
|
||||
public YamlConfiguration getLang() {
|
||||
return LANG;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the lang.yml file.
|
||||
*
|
||||
* @return The lang.yml file.
|
||||
*/
|
||||
public File getLangFile() {
|
||||
return LANG_FILE;
|
||||
}
|
||||
|
||||
public static void copyInputStreamToFile(InputStream input, File file) {
|
||||
|
||||
try (OutputStream output = new FileOutputStream(file)) {
|
||||
input.transferTo(output);
|
||||
} catch (IOException ioException) {
|
||||
if (isDebugMode()) {
|
||||
CustomDiscs.getInstance().getLogger().log(Level.SEVERE, "Exception output: ", ioException);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// RU: Инициализация CommandAPI с подробным выводом
|
||||
// EN: Initialize CommandAPI with verbose output
|
||||
CommandAPI.onLoad(new CommandAPIBukkitConfig(this).verboseOutput(true));
|
||||
|
||||
// RU: Регистрация команды /customdiscs
|
||||
// EN: Register the /customdiscs command
|
||||
new CustomDiscCommand(this).register("customdiscs");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
// RU: Инициализация логгера
|
||||
// EN: Initialize the logger
|
||||
pluginLogger = getLogger();
|
||||
|
||||
// RU: Включение CommandAPI
|
||||
// EN: Enable CommandAPI
|
||||
CommandAPI.onEnable();
|
||||
|
||||
// RU: Загрузка сервиса голосового чата
|
||||
// EN: Load the voice chat service
|
||||
BukkitVoicechatService service = getServer().getServicesManager().load(BukkitVoicechatService.class);
|
||||
|
||||
// RU: Сохранение конфигурации по умолчанию
|
||||
// EN: Save default configuration
|
||||
this.saveDefaultConfig();
|
||||
|
||||
// RU: Загрузка файла lang.yml
|
||||
// EN: Load the lang.yml file
|
||||
loadLang();
|
||||
|
||||
/**
|
||||
* Get the debugMode configuration.
|
||||
*
|
||||
* @return The boolean value of debugMode.
|
||||
*/
|
||||
public static boolean isDebugMode() { return debugMode; }
|
||||
// RU: Инициализация настроек из конфига
|
||||
// EN: Initialize settings from config
|
||||
debugMode = getConfig().getBoolean("debugMode", false);
|
||||
musicDiscEnable = getConfig().getBoolean("music-disc-enable");
|
||||
musicDiscPlayingEnable = getConfig().getBoolean("music-disc-playing-enable");
|
||||
musicDiscDistance = getConfig().getInt("music-disc-distance");
|
||||
musicDiscMaxDistance = getConfig().getInt("music-disc-max-distance");
|
||||
musicDiscVolume = Float.parseFloat(Objects.requireNonNull(getConfig().getString("music-disc-volume")));
|
||||
customHornEnable = getConfig().getBoolean("custom-horn-enable");
|
||||
customHornPlayingEnable = getConfig().getBoolean("custom-horn-playing-enable");
|
||||
customHornDistance = getConfig().getInt("custom-horn-distance");
|
||||
customHornMaxDistance = getConfig().getInt("custom-horn-max-distance");
|
||||
hornCooldown = getConfig().getInt("horn-cooldown");
|
||||
hornMaxCooldown = getConfig().getInt("horn-max-cooldown");
|
||||
customHeadEnable = getConfig().getBoolean("custom-head-enable");
|
||||
customHeadPlayingEnable = getConfig().getBoolean("custom-head-playing-enable");
|
||||
customHeadDistance = getConfig().getInt("custom-head-distance");
|
||||
customHeadMaxDistance = getConfig().getInt("custom-head-max-distance");
|
||||
|
||||
/**
|
||||
* Get the musicDiscPlayingEnable configuration.
|
||||
*
|
||||
* @return The boolean value of musicDiscPlayingEnable.
|
||||
*/
|
||||
public static boolean isMusicDiscEnable() { return musicDiscEnable; }
|
||||
// RU: Создание папки musicdata, если она не существует
|
||||
// EN: Create the musicdata folder if it doesn't exist
|
||||
File musicData = new File(this.getDataFolder(), "musicdata");
|
||||
if (!(musicData.exists())) {
|
||||
musicData.mkdirs();
|
||||
}
|
||||
|
||||
// RU: Регистрация плагина для голосового чата
|
||||
// EN: Register the plugin for voice chat
|
||||
if (service != null) {
|
||||
voicechatPlugin = new VoicePlugin();
|
||||
service.registerPlugin(voicechatPlugin);
|
||||
pluginLogger.info("Плагин CustomDiscs успешно зарегистрирован / CustomDiscs plugin successfully registered");
|
||||
} else {
|
||||
pluginLogger.info("Не удалось зарегистрировать плагин CustomDiscs / Failed to register CustomDiscs plugin");
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the customHornPlayingEnable configuration.
|
||||
*
|
||||
* @return The boolean value of customHornPlayingEnable.
|
||||
*/
|
||||
public static boolean isCustomHornEnable() { return customHornEnable; }
|
||||
// RU: Регистрация событий для музыкальных дисков
|
||||
// EN: Register events for music discs
|
||||
if (isMusicDiscEnable()) {
|
||||
getServer().getPluginManager().registerEvents(new JukeBox(), this);
|
||||
getServer().getPluginManager().registerEvents(new HopperManager(), this);
|
||||
}
|
||||
|
||||
// RU: Регистрация событий для кастомных голов
|
||||
// EN: Register events for custom heads
|
||||
if (isCustomHeadEnable()) {
|
||||
getServer().getPluginManager().registerEvents(new HeadPlay(), this);
|
||||
}
|
||||
|
||||
// RU: Регистрация событий для кастомных горнов
|
||||
// EN: Register events for custom horns
|
||||
if (isCustomHornEnable()) {
|
||||
getServer().getPluginManager().registerEvents(new HornPlay(), this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the customHeadPlayingEnable configuration.
|
||||
*
|
||||
* @return The boolean value of customHeadPlayingEnable.
|
||||
*/
|
||||
public static boolean isCustomHeadEnable() { return customHeadEnable; }
|
||||
// RU: Установка минимального кулдауна для горнов
|
||||
// EN: Set minimum cooldown for horns
|
||||
if (hornCooldown <= 0) {
|
||||
hornCooldown = 1;
|
||||
}
|
||||
if (hornMaxCooldown <= 0) {
|
||||
hornMaxCooldown = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the musicDiscPlayingEnable configuration.
|
||||
*
|
||||
* @return The boolean value of musicDiscPlayingEnable.
|
||||
*/
|
||||
public static boolean isMusicDiscPlayingEnable() { return musicDiscPlayingEnable; }
|
||||
// RU: Настройка ProtocolLib для обработки пакетов
|
||||
// EN: Set up ProtocolLib for packet handling
|
||||
ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager();
|
||||
protocolManager.addPacketListener(new PacketAdapter(this, ListenerPriority.NORMAL, PacketType.Play.Server.WORLD_EVENT) {
|
||||
@Override
|
||||
public void onPacketSending(PacketEvent event) {
|
||||
PacketContainer packet = event.getPacket();
|
||||
|
||||
/**
|
||||
* Get the customHornPlayingEnable configuration.
|
||||
*
|
||||
* @return The boolean value of customHornPlayingEnable.
|
||||
*/
|
||||
public static boolean isCustomHornPlayingEnable() { return customHornPlayingEnable; }
|
||||
// RU: Проверка пакета для события проигрывания диска
|
||||
// EN: Check packet for disc playback event
|
||||
if (packet.getIntegers().read(0).toString().equals("1010")) {
|
||||
if (!isMusicDiscEnable()) { return; }
|
||||
Jukebox jukebox = (Jukebox) packet.getBlockPositionModifier().read(0).toLocation(event.getPlayer().getWorld()).getBlock().getState();
|
||||
|
||||
/**
|
||||
* Get the customHeadPlayingEnable configuration.
|
||||
*
|
||||
* @return The boolean value of customHeadPlayingEnable.
|
||||
*/
|
||||
public static boolean isCustomHeadPlayingEnable() { return customHeadPlayingEnable; }
|
||||
}
|
||||
if (!jukebox.getRecord().hasItemMeta()) return;
|
||||
|
||||
// RU: Проверка, является ли диск кастомным
|
||||
// EN: Check if the disc is custom
|
||||
if (jukebox.getRecord().getItemMeta().getPersistentDataContainer().has(new NamespacedKey(this.plugin, "customdisc"), PersistentDataType.STRING)) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
// RU: Запуск менеджера состояния проигрывателя
|
||||
// EN: Start the jukebox state manager
|
||||
JukeboxStateManager.start(jukebox);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
// RU: Отключение CommandAPI
|
||||
// EN: Disable CommandAPI
|
||||
CommandAPI.onDisable();
|
||||
|
||||
// RU: Отмена регистрации плагина голосового чата
|
||||
// EN: Unregister the voice chat plugin
|
||||
if (voicechatPlugin != null) {
|
||||
getServer().getServicesManager().unregister(voicechatPlugin);
|
||||
pluginLogger.info("Плагин CustomDiscs успешно отключен / CustomDiscs plugin successfully unregistered");
|
||||
}
|
||||
}
|
||||
|
||||
// RU: Получение экземпляра плагина
|
||||
// EN: Get the plugin instance
|
||||
public static CustomDiscs getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Загрузка файла lang.yml
|
||||
* EN: Load the lang.yml file
|
||||
*/
|
||||
public void loadLang() {
|
||||
File lang = new File(getDataFolder(), "lang.yml");
|
||||
if (!lang.exists()) {
|
||||
try {
|
||||
// RU: Создание папки и файла lang.yml
|
||||
// EN: Create folder and lang.yml file
|
||||
getDataFolder().mkdir();
|
||||
lang.createNewFile();
|
||||
InputStream defConfigStream = this.getResource("lang.yml");
|
||||
if (defConfigStream != null) {
|
||||
copyInputStreamToFile(defConfigStream, lang);
|
||||
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(lang);
|
||||
defConfig.save(lang);
|
||||
Lang.setFile(defConfig);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
pluginLogger.severe("Не удалось создать lang.yml для CustomDiscs / Failed to create lang.yml for CustomDiscs");
|
||||
pluginLogger.severe("Отключение плагина... / Disabling plugin...");
|
||||
this.setEnabled(false); // RU: Без lang.yml плагин отключается / EN: Disable plugin without lang.yml
|
||||
if (isDebugMode()) {
|
||||
pluginLogger.log(Level.SEVERE, "Вывод ошибки / Exception output: ", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
// RU: Загрузка и настройка конфигурации lang.yml
|
||||
// EN: Load and configure lang.yml
|
||||
YamlConfiguration conf = YamlConfiguration.loadConfiguration(lang);
|
||||
for (Lang item : Lang.values()) {
|
||||
if (conf.getString(item.getPath()) == null) {
|
||||
conf.set(item.getPath(), item.getDefault());
|
||||
}
|
||||
}
|
||||
Lang.setFile(conf);
|
||||
LANG = conf;
|
||||
LANG_FILE = lang;
|
||||
try {
|
||||
conf.save(getLangFile());
|
||||
} catch (IOException e) {
|
||||
pluginLogger.warning("Не удалось сохранить lang.yml для CustomDiscs / Failed to save lang.yml for CustomDiscs");
|
||||
pluginLogger.warning("Отключение плагина... / Disabling plugin...");
|
||||
if (isDebugMode()) {
|
||||
pluginLogger.log(Level.SEVERE, "Вывод ошибки / Exception output: ", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Получение конфигурации lang.yml
|
||||
* EN: Get the lang.yml configuration
|
||||
*
|
||||
* @return Конфигурация lang.yml / The lang.yml configuration
|
||||
*/
|
||||
public YamlConfiguration getLang() {
|
||||
return LANG;
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Получение файла lang.yml
|
||||
* EN: Get the lang.yml file
|
||||
*
|
||||
* @return Файл lang.yml / The lang.yml file
|
||||
*/
|
||||
public File getLangFile() {
|
||||
return LANG_FILE;
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Копирование InputStream в файл
|
||||
* EN: Copy InputStream to file
|
||||
*/
|
||||
public static void copyInputStreamToFile(InputStream input, File file) {
|
||||
try (OutputStream output = new FileOutputStream(file)) {
|
||||
input.transferTo(output);
|
||||
} catch (IOException ioException) {
|
||||
if (isDebugMode()) {
|
||||
CustomDiscs.getInstance().getLogger().log(Level.SEVERE, "Вывод ошибки / Exception output: ", ioException);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Получение значения debugMode из конфигурации
|
||||
* EN: Get the debugMode configuration value
|
||||
*
|
||||
* @return Значение debugMode / The debugMode value
|
||||
*/
|
||||
public static boolean isDebugMode() {
|
||||
return debugMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Получение значения musicDiscEnable из конфигурации
|
||||
* EN: Get the musicDiscEnable configuration value
|
||||
*
|
||||
* @return Значение musicDiscEnable / The musicDiscEnable value
|
||||
*/
|
||||
public static boolean isMusicDiscEnable() {
|
||||
return musicDiscEnable;
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Получение значения customHornEnable из конфигурации
|
||||
* EN: Get the customHornEnable configuration value
|
||||
*
|
||||
* @return Значение customHornEnable / The customHornEnable value
|
||||
*/
|
||||
public static boolean isCustomHornEnable() {
|
||||
return customHornEnable;
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Получение значения customHeadEnable из конфигурации
|
||||
* EN: Get the customHeadEnable configuration value
|
||||
*
|
||||
* @return Значение customHeadEnable / The customHeadEnable value
|
||||
*/
|
||||
public static boolean isCustomHeadEnable() {
|
||||
return customHeadEnable;
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Получение значения musicDiscPlayingEnable из конфигурации
|
||||
* EN: Get the musicDiscPlayingEnable configuration value
|
||||
*
|
||||
* @return Значение musicDiscPlayingEnable / The musicDiscPlayingEnable value
|
||||
*/
|
||||
public static boolean isMusicDiscPlayingEnable() {
|
||||
return musicDiscPlayingEnable;
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Получение значения customHornPlayingEnable из конфигурации
|
||||
* EN: Get the customHornPlayingEnable configuration value
|
||||
*
|
||||
* @return Значение customHornPlayingEnable / The customHornPlayingEnable value
|
||||
*/
|
||||
public static boolean isCustomHornPlayingEnable() {
|
||||
return customHornPlayingEnable;
|
||||
}
|
||||
|
||||
/**
|
||||
* RU: Получение значения customHeadPlayingEnable из конфигурации
|
||||
* EN: Get the customHeadPlayingEnable configuration value
|
||||
*
|
||||
* @return Значение customHeadPlayingEnable / The customHeadPlayingEnable value
|
||||
*/
|
||||
public static boolean isCustomHeadPlayingEnable() {
|
||||
return customHeadPlayingEnable;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user