From db3d14fa9f2e71a9a67711be8065f4c1c6dcf922 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Tue, 22 Jan 2019 14:11:59 -0800 Subject: [PATCH] Don't send the URL header if url links are disabled --- pom.xml | 14 ++++ .../com/gmail/nossr50/WorldGuardManager.java | 66 +++++++++++++++++++ .../commands/skills/MiningCommand.java | 1 - .../nossr50/commands/skills/SkillCommand.java | 9 ++- .../gmail/nossr50/config/WorldBlacklist.java | 3 + .../nossr50/util/TextComponentFactory.java | 6 -- src/main/resources/plugin.yml | 2 +- 7 files changed, 91 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/gmail/nossr50/WorldGuardManager.java diff --git a/pom.xml b/pom.xml index d18ee5fcd..fe239cf31 100755 --- a/pom.xml +++ b/pom.xml @@ -136,6 +136,10 @@ CodeMC https://repo.codemc.org/repository/maven-public + + sk89q-repo + http://maven.sk89q.com/repo/ + @@ -150,6 +154,16 @@ 1.13.2-R0.1-SNAPSHOT provided + + com.sk89q.worldguard + worldguard-core + 7.0.0-SNAPSHOT + + + com.sk89q.worldguard + worldguard-legacy + 7.0.0-SNAPSHOT + junit junit-dep diff --git a/src/main/java/com/gmail/nossr50/WorldGuardManager.java b/src/main/java/com/gmail/nossr50/WorldGuardManager.java new file mode 100644 index 000000000..440f74e4c --- /dev/null +++ b/src/main/java/com/gmail/nossr50/WorldGuardManager.java @@ -0,0 +1,66 @@ +package com.gmail.nossr50; + +import com.sk89q.worldguard.bukkit.WorldGuardPlugin; +import com.sk89q.worldguard.protection.flags.Flag; +import com.sk89q.worldguard.protection.flags.StateFlag; + +public class WorldGuardManager { + // StateFlag with the name "my-custom-flag", which defaults to "allow" + public static final Flag MCMMO_DISABLE_WG_FLAG = new StateFlag("mcmmo-off", false); + public static final Flag MCMMO_XPOFF_WG_FLAG = new StateFlag("mcmmo-noxp", false); + + private static WorldGuardPlugin worldGuardPlugin; + + /*public static boolean isWgFlagActive(Location location) + { + if(flagsRegistered) + { + if(getWorldGuard() != null) + { + WorldGuardPlugin worldGuard = getWorldGuard(); + RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer(); + RegionQuery query = container.createQuery(); + + ApplicableRegionSet set = query.getApplicableRegions(); + + *//* if (!query.testState(location, (LocalPlayer)null, MCMMO_DISABLE_WG_FLAG)) { + // Can't build + }*//* + } + } + } + + private static WorldGuardPlugin getWorldGuard() { + if(worldGuardPlugin != null) + return worldGuardPlugin; + + Plugin plugin = getServer().getPluginManager().getPlugin("WorldGuard"); + + // WorldGuard may not be loaded + if (plugin == null || !(plugin instanceof WorldGuardPlugin)) { + return null; // Maybe you want throw an exception instead + } + + worldGuardPlugin = (WorldGuardPlugin) plugin; + return worldGuardPlugin; + } + + private static void registerFlags() + { + if(getWorldGuard() == null) + return; + + FlagRegistry registry = WorldGuard.getInstance().getFlagRegistry(); + try { + // register our flag with the registry + registry.register(MCMMO_DISABLE_WG_FLAG); + flagsRegistered = true; + } catch (FlagConflictException e) { + e.printStackTrace(); + // some other plugin registered a flag by the same name already. + // you may want to re-register with a different name, but this + // could cause issues with saved flags in region files. it's better + // to print a message to let the server admin know of the conflict + } + }*/ +} diff --git a/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java index 3011f3600..790d248c5 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java @@ -3,7 +3,6 @@ package com.gmail.nossr50.commands.skills; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.skills.mining.BlastMining; import com.gmail.nossr50.skills.mining.MiningManager; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.TextComponentFactory; diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java index 742847f95..39f0c9987 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java @@ -87,10 +87,15 @@ public abstract class SkillCommand implements TabExecutor { getStatMessages(player, isLucky, hasEndurance, skillValue); //Header - player.sendMessage(LocaleLoader.getString("Overhaul.mcMMO.Header")); + //Link Header - TextComponentFactory.sendPlayerUrlHeader(player); + if(Config.getInstance().getUrlLinksEnabled()) + { + player.sendMessage(LocaleLoader.getString("Overhaul.mcMMO.Header")); + TextComponentFactory.sendPlayerUrlHeader(player); + } + if (Config.getInstance().getScoreboardsEnabled() && Config.getInstance().getSkillUseBoard()) { ScoreboardManager.enablePlayerSkillScoreboard(player, skill); diff --git a/src/main/java/com/gmail/nossr50/config/WorldBlacklist.java b/src/main/java/com/gmail/nossr50/config/WorldBlacklist.java index ba89927bf..a37b89b3e 100644 --- a/src/main/java/com/gmail/nossr50/config/WorldBlacklist.java +++ b/src/main/java/com/gmail/nossr50/config/WorldBlacklist.java @@ -12,6 +12,7 @@ import java.util.ArrayList; public class WorldBlacklist { private static ArrayList blacklist; private mcMMO plugin; + private final String blackListFileName = "world_blacklist.txt"; public WorldBlacklist(mcMMO plugin) @@ -35,6 +36,7 @@ public class WorldBlacklist { //Load up the blacklist loadBlacklist(blackListFile); + //registerFlags(); } private void loadBlacklist(File blackListFile) { @@ -68,6 +70,7 @@ public class WorldBlacklist { public static boolean isWorldBlacklisted(World world) { + for(String s : blacklist) { if(world.getName().equalsIgnoreCase(s)) diff --git a/src/main/java/com/gmail/nossr50/util/TextComponentFactory.java b/src/main/java/com/gmail/nossr50/util/TextComponentFactory.java index d950e4626..6ead3cc8d 100644 --- a/src/main/java/com/gmail/nossr50/util/TextComponentFactory.java +++ b/src/main/java/com/gmail/nossr50/util/TextComponentFactory.java @@ -1,19 +1,16 @@ package com.gmail.nossr50.util; -import com.gmail.nossr50.config.AdvancedConfig; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.RankConfig; import com.gmail.nossr50.datatypes.interactions.NotificationType; import com.gmail.nossr50.datatypes.json.McMMOUrl; import com.gmail.nossr50.datatypes.json.McMMOWebLinks; -import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill; import com.gmail.nossr50.listeners.InteractionManager; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.skills.RankUtils; -import com.gmail.nossr50.util.skills.SkillUtils; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.*; @@ -80,9 +77,6 @@ public class TextComponentFactory { } public static void sendPlayerUrlHeader(Player player) { - if(!Config.getInstance().getUrlLinksEnabled()) - return; - Player.Spigot spigotPlayer = player.spigot(); TextComponent prefix = new TextComponent(LocaleLoader.getString("Overhaul.mcMMO.Url.Wrap.Prefix") + " "); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index bc6593868..b75c74fe8 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -14,7 +14,7 @@ author: nossr50 authors: [GJ, NuclearW, bm01, Glitchfinder, TfT_02, t00thpick1, Riking] website: https://www.mcmmo.org main: com.gmail.nossr50.mcMMO -softdepend: [CombatTag, HealthBar] +softdepend: [WorldGuard, CombatTag, HealthBar] load: STARTUP api-version: 1.13