use of com.epicnicity322.epicpluginlib.bukkit.logger.Logger in project PlayMoreSounds by Epicnicity322.
the class EssentialsChatHook method onStart.
@Override
protected void onStart() {
Logger logger = PlayMoreSounds.getConsoleLogger();
PluginManager pm = Bukkit.getPluginManager();
ess = (IEssentials) pm.getPlugin("Essentials");
if (ess == null || !pm.isPluginEnabled("EssentialsChat")) {
logger.log("[EssentialsChat Hook] Addon could not be started because EssentialsChat plugin failed to enable.", ConsoleLogger.Level.ERROR);
PlayMoreSounds.getAddonManager().stopAddon(this);
return;
}
for (RegisteredListener registeredListener : HandlerList.getRegisteredListeners(pm.getPlugin("EssentialsChat"))) {
Listener listener = registeredListener.getListener();
if (listener instanceof EssentialsChatPlayerListenerLowest) {
try {
Field chatStoreField = listener.getClass().getSuperclass().getDeclaredField("chatStorage");
chatStoreField.setAccessible(true);
chatStore = (Map<?, ?>) chatStoreField.get(listener);
} catch (Exception e) {
PlayMoreSoundsCore.getErrorHandler().report(e, "EssentialsChat Hook Addon Error - Could not get field using reflection:");
}
break;
}
}
if (chatStore == null) {
logger.log("[EssentialsChat Hook] Failed to get EssentialsChat's chatStorage map.", ConsoleLogger.Level.ERROR);
PlayMoreSounds.getAddonManager().stopAddon(this);
return;
}
handler = new ChannelsHandler("EssentialsChat", this, new ChannelsHandler.ChannelSoundPreventer() {
@Override
protected boolean preventReceivingSound(@NotNull Player receiver, @NotNull Player chatter, @NotNull String channel) {
return ess.getUser(receiver).isIgnoredPlayer(ess.getUser(chatter));
}
});
// Appending defaults to channels.yml
if (!ChannelsHandlerAddon.CHANNELS_CONFIG.getConfiguration().contains("EssentialsChat")) {
int defaultRadius = ess.getSettings().getChatRadius();
String data = "\n\nEssentialsChat:\n" + " local: # This is the default channel everyone talks.\n" + " Enabled: true\n" + " Sounds:\n" + " '1':\n" + " Options:\n" + " # If you have assigned a radius to local channel in essentials config, make sure to put\n" + " #the right radius here.\n" + " Radius: " + (defaultRadius <= 0 ? "-1" : defaultRadius) + // Essentials use radius 0 for global.
"\n" + " # Essentials makes so only players with this permission receives the message.\n" + " Permission To Listen: 'essentials.chat.receive.local'\n" + " Sound: ENTITY_ITEM_PICKUP\n" + " Chat Words: # Like for VentureChat, you can assign a sound to a word aswell.\n" + " pling:\n" + " Enabled: true\n" + " Sounds:\n" + " '1':\n" + " Sound: BLOCK_NOTE_BLOCK_PLING\n";
if (defaultRadius > 0) {
data = data + " can you hear me: # A useful sound so players can know if they are near each other.\n" + " Enabled: true\n" + " Prevent Other Sounds: # Like in VentureChat you can prevent Chat Sound and Other Chat Words sounds.\n" + " Chat Sound: true\n" + " Sounds:\n" + " '1':\n" + " Options:\n" + " Radius: " + (defaultRadius / 2.0) + "\n" + " Pitch: 1.3\n" + " Sound: ENTITY_VILLAGER_TRADE\n";
}
data = data + "\n" + " shout: # When players send messages starting with !, this channel is heard by everyone.\n" + " Enabled: true\n" + " Sounds:\n" + " '1':\n" + " Options:\n" + " Radius: -1\n" + " Permission To Listen: 'essentials.chat.receive.shout'\n" + " Sound: ENTITY_ITEM_PICKUP\n" + "\n" + " question: # When players send messages starting with ?, this channel is heard by everyone.\n" + " Enabled: true\n" + " Sounds:\n" + " '1':\n" + " Options:\n" + " Radius: -1\n" + " Permission To Listen: 'essentials.chat.receive.question'\n" + " Sound: ENTITY_VILLAGER_TRADE\n";
try {
PathUtils.write(data, ChannelsHandlerAddon.CHANNELS_CONFIG.getPath());
logger.log("&eAdded default EssentialsChat sound to channels.yml");
Configurations.getConfigurationLoader().loadConfigurations();
} catch (IOException e) {
logger.log("[EssentialsChat Hook] Failed to add defaults to channels.yml configuration. You can find a tutorial on how to set a channel sound in PlayMoreSounds's forums: https://playmoresounds.freeforums.net/thread/27/essentialschat-hook", ConsoleLogger.Level.WARN);
}
}
}
use of com.epicnicity322.epicpluginlib.bukkit.logger.Logger in project PlayMoreSounds by Epicnicity322.
the class UltimateChatHook method onStart.
@Override
protected void onStart() {
Logger logger = PlayMoreSounds.getConsoleLogger();
if (!Bukkit.getPluginManager().isPluginEnabled("UltimateChat")) {
logger.log("[UltimateChat Hook] Addon could not be started because UltimateChat plugin failed to enable.", ConsoleLogger.Level.ERROR);
PlayMoreSounds.getAddonManager().stopAddon(this);
return;
}
handler = new ChannelsHandler("UltimateChat", this, new ChannelsHandler.ChannelSoundPreventer() {
@Override
protected boolean preventReceivingSound(@NotNull Player receiver, @NotNull Player chatter, @NotNull String channel) {
Set<CommandSender> receiverSet = receivers.get(chatter);
if (receiverSet == null)
return false;
return !receiverSet.contains(receiver);
}
});
// Appending defaults to channels.yml
if (!ChannelsHandlerAddon.CHANNELS_CONFIG.getConfiguration().contains("UltimateChat")) {
String data = "\n\nUltimateChat:\n" + " Local: # This is the local channel, only people nearby can hear it.\n" + " Enabled: true\n" + " Cancellable: true # Other plugins might cancel the chat event.\n" + " Sounds:\n" + " '1':\n" + " Options:\n" + " Radius: 40\n" + " Sound: ENTITY_ITEM_PICKUP\n" + " Chat Words: # Like for VentureChat, you can assign a sound to a word as well.\n" + " pling:\n" + " Enabled: true\n" + " Cancellable: true\n" + " Sounds:\n" + " '1':\n" + " Options:\n" + " Radius: 40\n" + " Sound: BLOCK_NOTE_BLOCK_PLING\n" + " can you hear me: # A useful sound so players can know if they are near each other.\n" + " Enabled: true\n" + " Cancellable: true\n" + " Prevent Other Sounds: # Like in VentureChat you can prevent Chat Sound and Other Chat Words sounds.\n" + " Chat Sound: true\n" + " Sounds:\n" + " '1':\n" + " Options:\n" + " Radius: 20\n" + " Sound: ENTITY_VILLAGER_TRADE\n" + "\n" + " Global:\n" + " Enabled: true\n" + " Cancellable: true\n" + " Sounds:\n" + " '1':\n" + " Options:\n" + " Radius: -1\n" + " Sound: ENTITY_ITEM_PICKUP";
try {
PathUtils.write(data, ChannelsHandlerAddon.CHANNELS_CONFIG.getPath());
logger.log("&eAdded default UltimateChat sound to channels.yml");
Configurations.getConfigurationLoader().loadConfigurations();
} catch (IOException e) {
logger.log("[UltimateChat Hook] Failed to add defaults to channels.yml configuration. You can find a tutorial on how to set a channel sound in PlayMoreSounds's forums: https://playmoresounds.freeforums.net/thread/30/ultimatechat-hook", ConsoleLogger.Level.WARN);
}
}
}
use of com.epicnicity322.epicpluginlib.bukkit.logger.Logger in project PlayMoreSounds by Epicnicity322.
the class AddonEventManager method callLoadUnloadEvent.
static void callLoadUnloadEvent(PMSAddon addon, ConsoleLogger<?> logger) {
for (AddonLoadUnloadEvent event : registeredLoadUnloadEvents) try {
event.onLoadUnload(addon);
} catch (Throwable t) {
logger.log("&eException while calling addon load unload event: " + t.getMessage());
PlayMoreSoundsCore.getErrorHandler().report(t, "Call addon load unload event exception:");
}
}
use of com.epicnicity322.epicpluginlib.bukkit.logger.Logger in project PlayMoreSounds by Epicnicity322.
the class RedProtectRegions method onStart.
@Override
protected void onStart() {
Logger logger = PlayMoreSounds.getConsoleLogger();
if (!Bukkit.getPluginManager().isPluginEnabled("RedProtect")) {
logger.log("[RedProtect Regions] Addon could not be started because RedProtect plugin failed to enable.", ConsoleLogger.Level.ERROR);
PlayMoreSounds.getAddonManager().stopAddon(this);
return;
}
handler = new RegionsHandler("RedProtect", this, new RegionsHandler.InsideChecker() {
@Override
protected boolean isPlayerInside(@NotNull Player player, @NotNull String regionId) {
Region region = RedProtect.get().getAPI().getRegion(player.getLocation());
if (region == null)
return false;
return region.getID().equals(regionId);
}
});
// Adding example to regions.yml.
if (!Configurations.REGIONS.getConfigurationHolder().getConfiguration().contains("RedProtect")) {
String data = "\n\n# RedProtect Regions example:\n" + "RedProtect:\n" + " # Create a section with the ID of the regions you want to add a sound.\n" + " # ATTENTION: RedProtect's region IDs are the region's name followed by the world's name, with a @ separating\n" + " #them. So if you want to play a sound for the region with name 'spawn' that is in the world 'world', you\n" + " #have to create a section like this:\n" + " spawn@world: #<region name>@<world name>\n" + " # Loop sound for spawn region.\n" + " Loop:\n" + " Enabled: true\n" + " # The time in ticks to wait before playing the sound again in loop.\n" + " Period: 100\n" + " # The delay to wait before playing the FIRST sound.\n" + " Delay: 0\n" + " # When a plugin makes so the player can't enter the region, the sound won't play.\n" + " Cancellable: true\n" + " # Prevents the default Region Enter sound set in sounds.yml from playing when someone enters this region.\n" + " Prevent Default Sound: true\n" + " Stop On Exit:\n" + " # If you set to play a long sound, it will stop from playing on exit.\n" + " Enabled: true\n" + " # The delay to wait before stopping the sound.\n" + " Delay: 0\n" + " Sounds:\n" + " '1':\n" + " # Your Sound Type or Custom Sound name here.\n" + " # NBS Song Player addon is also supported to play nbs songs.\n" + " Sound: BLOCK_NOTE_BLOCK_HAT\n" + " # Make sure to set a big volume so the sound is heard in the whole region.\n" + " # Volume 1 is heard as far as 15 blocks.\n" + " Volume: 1000\n" + " # Enter sound for spawn region. You can set both a welcoming sound and a looping sound to play\n" + " #at the same time, but Enter will only play once when someone enters the region.\n" + " Enter:\n" + " Enabled: true\n" + " Cancellable: true\n" + " Prevent Default Sound: true\n" + " Stop On Exit:\n" + " Enabled: true\n" + " Delay: 0\n" + " Sounds:\n" + " '1':\n" + " Sound: BLOCK_NOTE_BLOCK_PLING\n" + " Volume: 1000\n" + " # Leave sound for spawn region.\n" + " Leave:\n" + " Enabled: true\n" + " Cancellable: true\n" + " # Prevents the default Region Enter sound set in sounds.yml from playing when someone leaves this region.\n" + " Prevent Default Sound: true\n" + " Stop On Exit:\n" + " Enabled: true\n" + " Delay: 0\n" + " Sounds:\n" + " '1':\n" + " Sound: BLOCK_NOTE_BLOCK_PLING\n" + " Volume: 1000\n" + "\n" + " # If you want to add sounds for another region, just copy the example above and paste below, make sure to rename\n" + " #the section to match your desired region ID. Region and world names are case sensitive, keep that in mind.\n" + " # Another example:\n" + " shop@TownWorld:\n" + " Enter:\n" + " Enabled: true\n" + " Sounds:\n" + " '1':\n" + " Sound: ENTITY_PLAYER_LEVELUP\n" + "\n" + "# PlayMoreSounds has much more options for sounds, like sound categories, delays and permissions. To see how to\n" + "#use those options, visit the file sounds.yml.\n" + "# The only option I advise to not use in region sounds is Radius, because it would make so players could hear\n" + "#each others region enter/leave events.";
try {
PathUtils.write(data, Configurations.REGIONS.getConfigurationHolder().getPath());
logger.log("[RedProtect Regions] &eAdded example RedProtect region sound to regions.yml. Do /pms rl if you want to use it.");
} catch (IOException e) {
logger.log("[RedProtect Regions] Failed to add example to regions.yml configuration. You can find a tutorial on how to set region sounds in PlayMoreSounds forum: https://playmoresounds.freeforums.net/thread/16/redprotect-regions", ConsoleLogger.Level.WARN);
}
}
}
use of com.epicnicity322.epicpluginlib.bukkit.logger.Logger in project PlayMoreSounds by Epicnicity322.
the class WorldGuardRegions method onStart.
@Override
protected void onStart() {
Logger logger = PlayMoreSounds.getConsoleLogger();
if (!Bukkit.getPluginManager().isPluginEnabled("WorldGuard")) {
logger.log("[WorldGuard Regions] Addon could not be started because WorldGuard plugin failed to enable.", ConsoleLogger.Level.ERROR);
PlayMoreSounds.getAddonManager().stopAddon(this);
return;
}
container = WorldGuard.getInstance().getPlatform().getRegionContainer();
handler = new RegionsHandler("WorldGuard", this, new RegionsHandler.InsideChecker() {
@Override
protected boolean isPlayerInside(@NotNull Player player, @NotNull String regionId) {
RegionManager manager = getManager(player.getWorld());
if (manager == null)
return false;
ProtectedRegion region = manager.getRegion(regionId);
if (region == null)
return false;
Location loc = player.getLocation();
return region.contains(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
}
});
// Adding example to regions.yml.
if (!Configurations.REGIONS.getConfigurationHolder().getConfiguration().contains("WorldGuard")) {
String data = "\n\n# WorldGuard Regions example:\n" + "WorldGuard:\n" + " # Create a section with the region name, in this example we're using spawn.\n" + " spawn:\n" + " # Loop sound for spawn region.\n" + " Loop:\n" + " Enabled: true\n" + " # The time in ticks to wait before playing the sound again in loop.\n" + " Period: 100\n" + " # The delay to wait before playing the FIRST sound.\n" + " Delay: 0\n" + " # When a plugin makes so the player can't enter the region, the sound won't play.\n" + " Cancellable: true\n" + " # Prevents the default Region Enter sound set in sounds.yml from playing when someone enters this region.\n" + " Prevent Default Sound: true\n" + " Stop On Exit:\n" + " # If you set to play a long sound, it will stop from playing on exit.\n" + " Enabled: true\n" + " # The delay to wait before stopping the sound.\n" + " Delay: 0\n" + " Sounds:\n" + " '1':\n" + " # Your Sound Type or Custom Sound name here.\n" + " # NBS Song Player addon is also supported to play nbs songs.\n" + " Sound: BLOCK_NOTE_BLOCK_HAT\n" + " # Make sure to set a big volume so the sound is heard in the whole region.\n" + " # Volume 1 is heard as far as 15 blocks.\n" + " Volume: 1000\n" + " # Enter sound for spawn region. You can set both a welcoming sound and a looping sound to play\n" + " #at the same time, but Enter will only play once when someone enters the region.\n" + " Enter:\n" + " Enabled: true\n" + " Cancellable: true\n" + " Prevent Default Sound: true\n" + " Stop On Exit:\n" + " Enabled: true\n" + " Delay: 0\n" + " Sounds:\n" + " '1':\n" + " Sound: BLOCK_NOTE_BLOCK_PLING\n" + " Volume: 1000\n" + " # Leave sound for spawn region.\n" + " Leave:\n" + " Enabled: true\n" + " Cancellable: true\n" + " # Prevents the default Region Enter sound set in sounds.yml from playing when someone leaves this region.\n" + " Prevent Default Sound: true\n" + " Stop On Exit:\n" + " Enabled: true\n" + " Delay: 0\n" + " Sounds:\n" + " '1':\n" + " Sound: BLOCK_NOTE_BLOCK_PLING\n" + " Volume: 1000\n" + "\n" + " # If you want to add sounds for another region, just copy the example above and paste below, make sure to rename\n" + " #the section to match your desired region name. Names are case sensitive, keep that in mind.\n" + " # Another example:\n" + " shop:\n" + " Enter:\n" + " Enabled: true\n" + " Sounds:\n" + " '1':\n" + " Sound: ENTITY_PLAYER_LEVELUP\n" + "\n" + "# PlayMoreSounds has much more options for sounds, like sound categories, delays and permissions. To see how to\n" + "#use those options, visit the file sounds.yml.\n" + "# The only option I advise to not use in region sounds is Radius, because it would make so players could hear\n" + "#each others region enter/leave events.";
try {
PathUtils.write(data, Configurations.REGIONS.getConfigurationHolder().getPath());
logger.log("[WorldGuard Regions] &eAdded example WorldGuard region sound to regions.yml. Do /pms rl if you want to use it.");
} catch (IOException e) {
logger.log("[WorldGuard Regions] Failed to add example to regions.yml configuration. You can find a tutorial on how to set region sounds in PlayMoreSounds forum: https://playmoresounds.freeforums.net/thread/15/worldguard-regions", ConsoleLogger.Level.WARN);
}
}
}
Aggregations