mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-03 18:43:43 +01:00 
			
		
		
		
	Add notification settings
This commit is contained in:
		@@ -40,6 +40,7 @@ Version 2.2.0
 | 
				
			|||||||
    Lily pads were removed from the Alchemy Ingredient list as they are unused
 | 
					    Lily pads were removed from the Alchemy Ingredient list as they are unused
 | 
				
			||||||
    Experience formula conversion command no longer relies on a file to determine what formula you were using previously, instead it determines this from command parameters
 | 
					    Experience formula conversion command no longer relies on a file to determine what formula you were using previously, instead it determines this from command parameters
 | 
				
			||||||
    Fixed some tab completion bugs for /mcconvert command
 | 
					    Fixed some tab completion bugs for /mcconvert command
 | 
				
			||||||
 | 
					    Nearby players using super abilities is now sent to your chat instead of the action bar by default
 | 
				
			||||||
    Increased the default recipe cost for Chimaera Wing from 5 to 40
 | 
					    Increased the default recipe cost for Chimaera Wing from 5 to 40
 | 
				
			||||||
    Admins will now be notified if a player trips over-fishing exploit detection 3+ times in a row (Locale: "Fishing.OverFishingDetected")
 | 
					    Admins will now be notified if a player trips over-fishing exploit detection 3+ times in a row (Locale: "Fishing.OverFishingDetected")
 | 
				
			||||||
        Note: Admins are players who are an operator or have adminchat permission.
 | 
					        Note: Admins are players who are an operator or have adminchat permission.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,12 +0,0 @@
 | 
				
			|||||||
package com.gmail.nossr50.config.hocon.notifications;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class ActionBarNotificationSetting {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public boolean enabled;
 | 
					 | 
				
			||||||
    public boolean sendCopyOfMessageToChat;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public ActionBarNotificationSetting(boolean enabled, boolean sendCopyOfMessageToChat) {
 | 
					 | 
				
			||||||
        this.enabled = enabled;
 | 
					 | 
				
			||||||
        this.sendCopyOfMessageToChat = sendCopyOfMessageToChat;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,18 +0,0 @@
 | 
				
			|||||||
package com.gmail.nossr50.config.hocon.notifications;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.gmail.nossr50.datatypes.interactions.NotificationType;
 | 
					 | 
				
			||||||
import ninja.leaping.configurate.objectmapping.Setting;
 | 
					 | 
				
			||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.util.HashMap;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@ConfigSerializable
 | 
					 | 
				
			||||||
public class ConfigActionBarNotifications {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Setting(value = "Notification-Settings")
 | 
					 | 
				
			||||||
    private HashMap<NotificationType, ActionBarNotificationSetting> notificationSettingHashMap;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public HashMap<NotificationType, ActionBarNotificationSetting> getNotificationSettingHashMap() {
 | 
					 | 
				
			||||||
        return notificationSettingHashMap;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -7,7 +7,8 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 | 
				
			|||||||
public class ConfigNotificationGeneral {
 | 
					public class ConfigNotificationGeneral {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static final boolean PLAYER_TIPS_DEFAULT = true;
 | 
					    private static final boolean PLAYER_TIPS_DEFAULT = true;
 | 
				
			||||||
    public static final boolean PROFILE_LOADED_DEFAULT = false;
 | 
					    private static final boolean PROFILE_LOADED_DEFAULT = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Setting(value = "Player-Tips", comment = "Allows mcMMO to send players automated helpful tips." +
 | 
					    @Setting(value = "Player-Tips", comment = "Allows mcMMO to send players automated helpful tips." +
 | 
				
			||||||
            "\n Default value: " + PLAYER_TIPS_DEFAULT)
 | 
					            "\n Default value: " + PLAYER_TIPS_DEFAULT)
 | 
				
			||||||
    private boolean playerTips = PLAYER_TIPS_DEFAULT;
 | 
					    private boolean playerTips = PLAYER_TIPS_DEFAULT;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,16 +1,20 @@
 | 
				
			|||||||
package com.gmail.nossr50.config.hocon.notifications;
 | 
					package com.gmail.nossr50.config.hocon.notifications;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.gmail.nossr50.datatypes.interactions.NotificationType;
 | 
				
			||||||
import ninja.leaping.configurate.objectmapping.Setting;
 | 
					import ninja.leaping.configurate.objectmapping.Setting;
 | 
				
			||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 | 
					import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ConfigSerializable
 | 
					@ConfigSerializable
 | 
				
			||||||
public class ConfigNotifications {
 | 
					public class ConfigNotifications {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static final boolean SUPER_ABILITY_TOOL_NOTIFICATION_DEFAULT = true;
 | 
					    private static final boolean SUPER_ABILITY_TOOL_NOTIFICATION_DEFAULT = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Setting(value = "Action-Bar-Notifications", comment = "Settings related to action bar messages." +
 | 
					    @Setting(value = "Player-Notifications", comment = "Settings for player notifications" +
 | 
				
			||||||
            "\nThe action bar is the area above your health and armor.")
 | 
					            "\nPlayer notifications are often sent to the action bar (The action bar is the location above player health/armor/hunger displays)" +
 | 
				
			||||||
    private ConfigActionBarNotifications actionBarNotifications = new ConfigActionBarNotifications();
 | 
					            "\nYou can configure where these notifications are sent and whether or not they are sent at all.")
 | 
				
			||||||
 | 
					    private ConfigPlayerNotifications playerNotifications = new ConfigPlayerNotifications();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Setting(value = "General", comment = "General settings for Notifications")
 | 
					    @Setting(value = "General", comment = "General settings for Notifications")
 | 
				
			||||||
@@ -37,11 +41,19 @@ public class ConfigNotifications {
 | 
				
			|||||||
        return superAbilityToolMessage;
 | 
					        return superAbilityToolMessage;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ConfigActionBarNotifications getActionBarNotifications() {
 | 
					    public ConfigPlayerNotifications getPlayerNotificationsConfig() {
 | 
				
			||||||
        return actionBarNotifications;
 | 
					        return playerNotifications;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ConfigNotificationGeneral getConfigNotificationGeneral() {
 | 
					    public ConfigNotificationGeneral getConfigNotificationGeneral() {
 | 
				
			||||||
        return configNotificationGeneral;
 | 
					        return configNotificationGeneral;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public HashMap<NotificationType, PlayerNotification> getNotificationSettingHashMap() {
 | 
				
			||||||
 | 
					        return playerNotifications.getNotificationSettingHashMap();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public PlayerNotification getPlayerNotification(NotificationType notificationType) {
 | 
				
			||||||
 | 
					        return playerNotifications.getPlayerNotification(notificationType);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					package com.gmail.nossr50.config.hocon.notifications;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.gmail.nossr50.datatypes.interactions.NotificationType;
 | 
				
			||||||
 | 
					import ninja.leaping.configurate.objectmapping.Setting;
 | 
				
			||||||
 | 
					import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@ConfigSerializable
 | 
				
			||||||
 | 
					public class ConfigPlayerNotifications {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final static HashMap<NotificationType, PlayerNotification> NOTIFICATION_MAP_DEFAULT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    static {
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT = new HashMap<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.ABILITY_OFF, new PlayerNotification(true, false, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.HARDCORE_MODE, new PlayerNotification(true, true, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.REQUIREMENTS_NOT_MET, new PlayerNotification(true, false, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.ABILITY_COOLDOWN, new PlayerNotification(true, false, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.LEVEL_UP_MESSAGE, new PlayerNotification(true, true, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.HOLIDAY, new PlayerNotification(true, true, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.TOOL, new PlayerNotification(true, false, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.SUBSKILL_MESSAGE, new PlayerNotification(true, false, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.SUBSKILL_MESSAGE_FAILED, new PlayerNotification(true, true, false));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.SUBSKILL_UNLOCKED, new PlayerNotification(true, true, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.SUPER_ABILITY, new PlayerNotification(true, false, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.SUPER_ABILITY_ALERT_OTHERS, new PlayerNotification(true, true, false));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.ITEM_MESSAGE, new PlayerNotification(true, false, true));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.NO_PERMISSION, new PlayerNotification(true, true, false));
 | 
				
			||||||
 | 
					        NOTIFICATION_MAP_DEFAULT.put(NotificationType.PARTY_MESSAGE, new PlayerNotification(true, true, false));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Setting(value = "Notification-Settings")
 | 
				
			||||||
 | 
					    private HashMap<NotificationType, PlayerNotification> notificationSettingHashMap = NOTIFICATION_MAP_DEFAULT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public HashMap<NotificationType, PlayerNotification> getNotificationSettingHashMap() {
 | 
				
			||||||
 | 
					        return notificationSettingHashMap;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public PlayerNotification getPlayerNotification(NotificationType notificationType) {
 | 
				
			||||||
 | 
					        return notificationSettingHashMap.get(notificationType);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					package com.gmail.nossr50.config.hocon.notifications;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class PlayerNotification {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private boolean enabled;
 | 
				
			||||||
 | 
					    private boolean sendToChat;
 | 
				
			||||||
 | 
					    private boolean sendToActionBar;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public PlayerNotification(boolean enabled, boolean sendToChat, boolean sendToActionBar) {
 | 
				
			||||||
 | 
					        this.enabled = enabled;
 | 
				
			||||||
 | 
					        this.sendToChat = sendToChat;
 | 
				
			||||||
 | 
					        this.sendToActionBar = sendToActionBar;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setEnabled(boolean enabled) {
 | 
				
			||||||
 | 
					        this.enabled = enabled;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setSendToChat(boolean sendToChat) {
 | 
				
			||||||
 | 
					        this.sendToChat = sendToChat;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean isEnabled() {
 | 
				
			||||||
 | 
					        return enabled;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean isSendToChat() {
 | 
				
			||||||
 | 
					        if(enabled)
 | 
				
			||||||
 | 
					            return sendToChat;
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean isSendToActionBar() {
 | 
				
			||||||
 | 
					        if(enabled)
 | 
				
			||||||
 | 
					            return sendToActionBar;
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setSendToActionBar(boolean sendToActionBar) {
 | 
				
			||||||
 | 
					        this.sendToActionBar = sendToActionBar;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -4,33 +4,20 @@ package com.gmail.nossr50.datatypes.interactions;
 | 
				
			|||||||
 * This class helps define the types of information interactions we will have with players
 | 
					 * This class helps define the types of information interactions we will have with players
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public enum NotificationType {
 | 
					public enum NotificationType {
 | 
				
			||||||
    XP_GAIN("ExperienceGain"),
 | 
					    HARDCORE_MODE(),
 | 
				
			||||||
    HARDCORE_MODE("HardcoreMode"),
 | 
					    NO_PERMISSION(),
 | 
				
			||||||
    NO_PERMISSION("NoPermission"),
 | 
					    SUBSKILL_UNLOCKED(),
 | 
				
			||||||
    SUBSKILL_UNLOCKED("SubSkillUnlocked"),
 | 
					    LEVEL_UP_MESSAGE(),
 | 
				
			||||||
    LEVEL_UP_MESSAGE("LevelUps"),
 | 
					    HOLIDAY(),
 | 
				
			||||||
    HOLIDAY("Holiday"),
 | 
					    SUBSKILL_MESSAGE(),
 | 
				
			||||||
    SUBSKILL_MESSAGE("SubSkillInteraction"),
 | 
					    SUBSKILL_MESSAGE_FAILED(),
 | 
				
			||||||
    SUBSKILL_MESSAGE_FAILED("SubSkillFailed"),
 | 
					    TOOL(),
 | 
				
			||||||
    TOOL("ToolReady"),
 | 
					    REQUIREMENTS_NOT_MET(),
 | 
				
			||||||
    REQUIREMENTS_NOT_MET("RequirementsNotMet"),
 | 
					    ABILITY_OFF(),
 | 
				
			||||||
    ABILITY_OFF("AbilityOff"),
 | 
					    ABILITY_COOLDOWN(),
 | 
				
			||||||
    ABILITY_COOLDOWN("AbilityCoolDown"),
 | 
					    ABILITY_REFRESHED(),
 | 
				
			||||||
    ABILITY_REFRESHED("AbilityRefreshed"),
 | 
					    SUPER_ABILITY(),
 | 
				
			||||||
    SUPER_ABILITY("SuperAbilityInteraction"),
 | 
					    SUPER_ABILITY_ALERT_OTHERS(),
 | 
				
			||||||
    SUPER_ABILITY_ALERT_OTHERS("SuperAbilityAlertOthers"),
 | 
					    ITEM_MESSAGE(),
 | 
				
			||||||
    ITEM_MESSAGE("ItemMessage"),
 | 
					    PARTY_MESSAGE()
 | 
				
			||||||
    CHAT_ONLY("ChatOnly"),
 | 
					 | 
				
			||||||
    PARTY_MESSAGE("PartyMessage");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    final String niceName;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    NotificationType(String niceName) {
 | 
					 | 
				
			||||||
        this.niceName = niceName;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public String toString() {
 | 
					 | 
				
			||||||
        return niceName;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user