mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-25 02:04:44 +02:00
ActionBar messages can now have copies sent to chat
This commit is contained in:
@ -696,10 +696,15 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
|
||||
return config.getDouble("Skills."+abstractSubSkill.getPrimaryKeyName()+"."+abstractSubSkill.getConfigKeyName()+".ChanceMax", 100.0D);
|
||||
}
|
||||
|
||||
/* Interaction Settings */
|
||||
/* Notification Settings */
|
||||
public boolean doesNotificationUseActionBar(NotificationType notificationType)
|
||||
{
|
||||
return config.getBoolean("Feedback.ActionBarNotifications."+notificationType.toString(), true);
|
||||
return config.getBoolean("Feedback.ActionBarNotifications."+notificationType.toString()+".Enabled", true);
|
||||
}
|
||||
|
||||
public boolean doesNotificationSendCopyToChat(NotificationType notificationType)
|
||||
{
|
||||
return config.getBoolean("Feedback.ActionBarNotifications."+notificationType.toString()+".SendCopyOfMessageToChat", false);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -5,6 +5,7 @@ package com.gmail.nossr50.datatypes.interactions;
|
||||
*/
|
||||
public enum NotificationType {
|
||||
XP_GAIN("ExperienceGain"),
|
||||
HARDCORE_MODE("HardcoreMode"),
|
||||
NO_PERMISSION("NoPermission"),
|
||||
SUBSKILL_UNLOCKED("SubSkillUnlocked"),
|
||||
LEVEL_UP_MESSAGE("LevelUps"),
|
||||
|
@ -13,17 +13,25 @@ import org.bukkit.event.player.PlayerEvent;
|
||||
*/
|
||||
public class McMMOPlayerNotificationEvent extends PlayerEvent implements Cancellable {
|
||||
private boolean isCancelled;
|
||||
/*
|
||||
* Messages can be sent to both places, as configured in advanced.yml
|
||||
* If isBeingSentToActionBar is false, then messages will ALWAYS be sent to the chat bar
|
||||
* isMessageAlsoBeingSentToChat just indicates a copy of that message will be sent to chat
|
||||
*/
|
||||
private boolean isMessageAlsoBeingSentToChat;
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
protected ChatMessageType chatMessageType;
|
||||
|
||||
protected TextComponent notificationTextComponent;
|
||||
protected final NotificationType notificationType;
|
||||
|
||||
public McMMOPlayerNotificationEvent(Player who, NotificationType notificationType, TextComponent notificationTextComponent, ChatMessageType chatMessageType) {
|
||||
public McMMOPlayerNotificationEvent(Player who, NotificationType notificationType, TextComponent notificationTextComponent, ChatMessageType chatMessageType, boolean isMessageAlsoBeingSentToChat) {
|
||||
super(who);
|
||||
this.notificationType = notificationType;
|
||||
this.notificationTextComponent = notificationTextComponent;
|
||||
this.chatMessageType = chatMessageType;
|
||||
this.isMessageAlsoBeingSentToChat = isMessageAlsoBeingSentToChat;
|
||||
isCancelled = false;
|
||||
}
|
||||
|
||||
@ -31,6 +39,14 @@ public class McMMOPlayerNotificationEvent extends PlayerEvent implements Cancell
|
||||
* Getters & Setters
|
||||
*/
|
||||
|
||||
public boolean isMessageAlsoBeingSentToChat() {
|
||||
return isMessageAlsoBeingSentToChat;
|
||||
}
|
||||
|
||||
public void setMessageAlsoBeingSentToChat(boolean messageAlsoBeingSentToChat) {
|
||||
isMessageAlsoBeingSentToChat = messageAlsoBeingSentToChat;
|
||||
}
|
||||
|
||||
public TextComponent getNotificationTextComponent() {
|
||||
return notificationTextComponent;
|
||||
}
|
||||
|
@ -2,7 +2,10 @@ package com.gmail.nossr50.util;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.datatypes.interactions.NotificationType;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.util.player.NotificationManager;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gmail.nossr50.config.Config;
|
||||
@ -52,7 +55,7 @@ public final class HardcoreManager {
|
||||
return;
|
||||
}
|
||||
|
||||
player.sendMessage(LocaleLoader.getString("Hardcore.DeathStatLoss.PlayerDeath", totalLevelsLost));
|
||||
NotificationManager.sendPlayerInformation(player, NotificationType.HARDCORE_MODE, "Hardcore.DeathStatLoss.PlayerDeath", String.valueOf(totalLevelsLost));
|
||||
}
|
||||
|
||||
public static void invokeVampirism(Player killer, Player victim) {
|
||||
|
@ -66,13 +66,25 @@ public class NotificationManager {
|
||||
if (customEvent.isCancelled())
|
||||
return;
|
||||
|
||||
player.spigot().sendMessage(customEvent.getChatMessageType(), customEvent.getNotificationTextComponent());
|
||||
//If the message is being sent to the action bar we need to check if the copy if a copy is sent to the chat system
|
||||
if(customEvent.getChatMessageType() == ChatMessageType.ACTION_BAR)
|
||||
{
|
||||
player.spigot().sendMessage(customEvent.getChatMessageType(), customEvent.getNotificationTextComponent());
|
||||
|
||||
if(customEvent.isMessageAlsoBeingSentToChat())
|
||||
{
|
||||
//Send copy to chat system
|
||||
player.spigot().sendMessage(ChatMessageType.SYSTEM, customEvent.getNotificationTextComponent());
|
||||
}
|
||||
} else {
|
||||
player.spigot().sendMessage(customEvent.getChatMessageType(), customEvent.getNotificationTextComponent());
|
||||
}
|
||||
}
|
||||
|
||||
private static McMMOPlayerNotificationEvent checkNotificationEvent(Player player, NotificationType notificationType, ChatMessageType destination, TextComponent message) {
|
||||
//Init event
|
||||
McMMOPlayerNotificationEvent customEvent = new McMMOPlayerNotificationEvent(player,
|
||||
notificationType, message, destination);
|
||||
notificationType, message, destination, AdvancedConfig.getInstance().doesNotificationSendCopyToChat(notificationType));
|
||||
|
||||
//Call event
|
||||
Bukkit.getServer().getPluginManager().callEvent(customEvent);
|
||||
|
Reference in New Issue
Block a user