Pārlūkot izejas kodu

mcnotify will now squelch notifications from mcMMO & players who are squelched will be reminded of their squelch status at least once an hour (you can disable this in advanced.yml)

nossr50 6 gadi atpakaļ
vecāks
revīzija
8538ac4e50

+ 6 - 0
Changelog.txt

@@ -7,6 +7,12 @@ Key:
   ! Change
   - Removal
 
+Version 2.1.36
+    Updated German locale (Thanks OverCrave)
+    The /mcnotify command will now squelch almost all chat messages or action bar notifications sent to the player from mcMMO
+    mcMMO will now remind players on an hourly basis that they are are not receiving notifications from mcMMO if they have run the mcnotify command and toggled squelch mode
+    Added a new setting to advanced.yml "Feedback.PlayerTips", when set to true this will allow mcMMO to send periodic helpful messages to players, currently this only affects mcnotify reminders.
+
 Version 2.1.35
     Readded the detonator config option
 

+ 1 - 1
pom.xml

@@ -2,7 +2,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.gmail.nossr50.mcMMO</groupId>
     <artifactId>mcMMO</artifactId>
-    <version>2.1.35</version>
+    <version>2.1.36-SNAPSHOT</version>
     <name>mcMMO</name>
     <url>https://github.com/mcMMO-Dev/mcMMO</url>
     <scm>

+ 4 - 0
src/main/java/com/gmail/nossr50/config/AdvancedConfig.java

@@ -646,6 +646,10 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
     /* GENERAL */
     public int getStartingLevel() { return config.getInt("Skills.General.StartingLevel", 1); }
 
+    public boolean allowPlayerTips() {
+        return config.getBoolean("Feedback.PlayerTips", true);
+    }
+
     /**
      * This returns the maximum level at which superabilities will stop lengthening from scaling alongside skill level.
      * It returns a different value depending on whether or not the server is in retro mode

+ 6 - 0
src/main/java/com/gmail/nossr50/mcMMO.java

@@ -19,6 +19,7 @@ import com.gmail.nossr50.party.PartyManager;
 import com.gmail.nossr50.runnables.CheckDateTask;
 import com.gmail.nossr50.runnables.SaveTimerTask;
 import com.gmail.nossr50.runnables.backups.CleanBackupsTask;
+import com.gmail.nossr50.runnables.commands.NotifySquelchReminderTask;
 import com.gmail.nossr50.runnables.database.UserPurgeTask;
 import com.gmail.nossr50.runnables.party.PartyAutoKickTask;
 import com.gmail.nossr50.runnables.player.ClearRegisteredXPGainTask;
@@ -539,6 +540,11 @@ public class mcMMO extends JavaPlugin {
         if (ExperienceConfig.getInstance().getDiminishedReturnsEnabled()) {
             new ClearRegisteredXPGainTask().runTaskTimer(this, 60, 60);
         }
+
+        if(AdvancedConfig.getInstance().allowPlayerTips())
+        {
+            new NotifySquelchReminderTask().runTaskTimer(this, 60, ((20 * 60) * 60));
+        }
     }
 
     private void checkModConfigs() {

+ 23 - 0
src/main/java/com/gmail/nossr50/runnables/commands/NotifySquelchReminderTask.java

@@ -0,0 +1,23 @@
+package com.gmail.nossr50.runnables.commands;
+
+import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.util.player.UserManager;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.scheduler.BukkitRunnable;
+
+public class NotifySquelchReminderTask extends BukkitRunnable {
+
+    @Override
+    public void run() {
+        for (Player player : Bukkit.getOnlinePlayers()) {
+            if(UserManager.getPlayer(player) != null)
+            {
+                if(!UserManager.getPlayer(player).useChatNotifications())
+                {
+                    player.sendMessage(LocaleLoader.getString("Reminder.Squelched"));
+                }
+            }
+        }
+    }
+}

+ 12 - 1
src/main/java/com/gmail/nossr50/util/player/NotificationManager.java

@@ -28,6 +28,9 @@ public class NotificationManager {
      */
     public static void sendPlayerInformation(Player player, NotificationType notificationType, String key)
     {
+        if(!UserManager.getPlayer(player).useChatNotifications())
+            return;
+
         ChatMessageType destination = AdvancedConfig.getInstance().doesNotificationUseActionBar(notificationType) ? ChatMessageType.ACTION_BAR : ChatMessageType.SYSTEM;
 
         TextComponent message = TextComponentFactory.getNotificationTextComponentFromLocale(key, notificationType);
@@ -57,8 +60,10 @@ public class NotificationManager {
 
     public static void sendPlayerInformation(Player player, NotificationType notificationType, String key, String... values)
     {
-        ChatMessageType destination = AdvancedConfig.getInstance().doesNotificationUseActionBar(notificationType) ? ChatMessageType.ACTION_BAR : ChatMessageType.SYSTEM;
+        if(!UserManager.getPlayer(player).useChatNotifications())
+            return;
 
+        ChatMessageType destination = AdvancedConfig.getInstance().doesNotificationUseActionBar(notificationType) ? ChatMessageType.ACTION_BAR : ChatMessageType.SYSTEM;
 
         TextComponent message = TextComponentFactory.getNotificationMultipleValues(key, notificationType, values);
         McMMOPlayerNotificationEvent customEvent = checkNotificationEvent(player, notificationType, destination, message);
@@ -103,6 +108,9 @@ public class NotificationManager {
      */
     public static void sendPlayerLevelUpNotification(McMMOPlayer mcMMOPlayer, PrimarySkillType skillName, int levelsGained, int newLevel)
     {
+        if(!UserManager.getPlayer(mcMMOPlayer.getPlayer()).useChatNotifications())
+            return;
+
         ChatMessageType destination = AdvancedConfig.getInstance().doesNotificationUseActionBar(NotificationType.LEVEL_UP_MESSAGE) ? ChatMessageType.ACTION_BAR : ChatMessageType.SYSTEM;
 
         TextComponent levelUpTextComponent = TextComponentFactory.getNotificationLevelUpTextComponent(skillName, levelsGained, newLevel);
@@ -121,6 +129,9 @@ public class NotificationManager {
 
     public static void sendPlayerUnlockNotification(McMMOPlayer mcMMOPlayer, SubSkillType subSkillType)
     {
+        if(!UserManager.getPlayer(mcMMOPlayer.getPlayer()).useChatNotifications())
+            return;
+
         //CHAT MESSAGE
         mcMMOPlayer.getPlayer().spigot().sendMessage(TextComponentFactory.getSubSkillUnlockedNotificationComponents(mcMMOPlayer.getPlayer(), subSkillType));
 

+ 1 - 0
src/main/resources/advanced.yml

@@ -17,6 +17,7 @@
 Metrics:
     bstats: true
 Feedback:
+    PlayerTips: true
     SkillCommand:
         BlankLinesAboveHeader: true
     # If sendtitles is true messages will be sent using the title api (BIG TEXT ON SCREEN)

+ 3 - 1
src/main/resources/locale/locale_en_US.properties

@@ -1073,4 +1073,6 @@ Profile.Loading.Failure=[[RED]]mcMMO still cannot load your data. You may want t
 Profile.Loading.AdminFailureNotice=[[DARK_RED]][A][[RED]] mcMMO was unable to load the player data for [[YELLOW]]{0}[[RED]]. [[LIGHT_PURPLE]]Please inspect your database setup.
 #Holiday
 Holiday.AprilFools.Levelup=[[GOLD]]{0} is now level [[GREEN]]{1}[[GOLD]]!
-Holiday.Anniversary=[[BLUE]]Happy {0} Year Anniversary!\n[[BLUE]]In honor of all of nossr50's work and all the devs, here's a firework show!
+Holiday.Anniversary=[[BLUE]]Happy {0} Year Anniversary!\n[[BLUE]]In honor of all of nossr50's work and all the devs, here's a firework show!
+#Reminder Messages
+Reminder.Squelched=[[GRAY]]Reminder: You are currently not receiving notifications from mcMMO, to enable notifications please run the /mcnotify command again. This is an automated hourly reminder.