diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionPrintoutBuilder.java b/worldguard-core/src/main/java/com/sk89q/worldguard/commands/region/RegionPrintoutBuilder.java similarity index 89% rename from worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionPrintoutBuilder.java rename to worldguard-core/src/main/java/com/sk89q/worldguard/commands/region/RegionPrintoutBuilder.java index 80f7e91f7..b5b665d22 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionPrintoutBuilder.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/commands/region/RegionPrintoutBuilder.java @@ -17,17 +17,17 @@ * along with this program. If not, see . */ -package com.sk89q.worldguard.bukkit.commands.region; +package com.sk89q.worldguard.commands.region; import com.sk89q.squirrelid.cache.ProfileCache; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.util.formatting.Style; import com.sk89q.worldguard.WorldGuard; import com.sk89q.worldguard.domains.DefaultDomain; import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.flags.RegionGroupFlag; import com.sk89q.worldguard.protection.regions.ProtectedRegion; -import org.bukkit.ChatColor; import java.util.ArrayList; import java.util.List; @@ -69,16 +69,16 @@ private void newLine() { * Add region name, type, and priority. */ public void appendBasics() { - builder.append(ChatColor.BLUE); + builder.append(Style.BLUE); builder.append("Region: "); - builder.append(ChatColor.YELLOW); + builder.append(Style.YELLOW); builder.append(region.getId()); - builder.append(ChatColor.GRAY); + builder.append(Style.GRAY); builder.append(" (type="); builder.append(region.getType().getName()); - builder.append(ChatColor.GRAY); + builder.append(Style.GRAY); builder.append(", priority="); builder.append(region.getPriority()); builder.append(")"); @@ -90,7 +90,7 @@ public void appendBasics() { * Add information about flags. */ public void appendFlags() { - builder.append(ChatColor.BLUE); + builder.append(Style.BLUE); builder.append("FlagUtil: "); appendFlagsList(true); @@ -118,7 +118,7 @@ public void appendFlagsList(boolean useColors) { builder.append(", "); } else { if (useColors) { - builder.append(ChatColor.YELLOW); + builder.append(Style.YELLOW); } } @@ -129,11 +129,11 @@ public void appendFlagsList(boolean useColors) { if (group == null) { builder.append(flag.getName()).append(": ") - .append(ChatColor.stripColor(String.valueOf(val))); + .append(Style.stripColor(String.valueOf(val))); } else { builder.append(flag.getName()).append(" -g ") .append(group).append(": ") - .append(ChatColor.stripColor(String.valueOf(val))); + .append(Style.stripColor(String.valueOf(val))); } hasFlags = true; @@ -141,7 +141,7 @@ public void appendFlagsList(boolean useColors) { if (!hasFlags) { if (useColors) { - builder.append(ChatColor.RED); + builder.append(Style.RED); } builder.append("(none)"); } @@ -180,7 +180,7 @@ public void appendParentTree(boolean useColors) { while (it.hasPrevious()) { ProtectedRegion cur = it.previous(); if (useColors) { - builder.append(ChatColor.GREEN); + builder.append(Style.GREEN); } // Put symbol for child @@ -197,7 +197,7 @@ public void appendParentTree(boolean useColors) { // Put (parent) if (!cur.equals(region)) { if (useColors) { - builder.append(ChatColor.GRAY); + builder.append(Style.GRAY); } builder.append(" (parent, priority=").append(cur.getPriority()).append(")"); } @@ -211,12 +211,12 @@ public void appendParentTree(boolean useColors) { * Add information about members. */ public void appendDomain() { - builder.append(ChatColor.BLUE); + builder.append(Style.BLUE); builder.append("Owners: "); addDomainString(region.getOwners()); newLine(); - builder.append(ChatColor.BLUE); + builder.append(Style.BLUE); builder.append("Members: "); addDomainString(region.getMembers()); newLine(); @@ -224,10 +224,10 @@ public void appendDomain() { private void addDomainString(DefaultDomain domain) { if (domain.size() != 0) { - builder.append(ChatColor.YELLOW); + builder.append(Style.YELLOW); builder.append(domain.toUserFriendlyString(cache)); } else { - builder.append(ChatColor.RED); + builder.append(Style.RED); builder.append("(none)"); } } @@ -238,9 +238,9 @@ private void addDomainString(DefaultDomain domain) { public void appendBounds() { BlockVector3 min = region.getMinimumPoint(); BlockVector3 max = region.getMaximumPoint(); - builder.append(ChatColor.BLUE); + builder.append(Style.BLUE); builder.append("Bounds:"); - builder.append(ChatColor.YELLOW); + builder.append(Style.YELLOW); builder.append(" (").append(min.getBlockX()).append(",").append(min.getBlockY()).append(",").append(min.getBlockZ()).append(")"); builder.append(" -> (").append(max.getBlockX()).append(",").append(max.getBlockY()).append(",").append(max.getBlockZ()).append(")"); @@ -248,7 +248,7 @@ public void appendBounds() { } private void appendRegionInformation() { - builder.append(ChatColor.GRAY); + builder.append(Style.GRAY); builder.append("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550"); builder.append(" Region Info "); builder.append("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550"); @@ -260,7 +260,7 @@ private void appendRegionInformation() { appendBounds(); if (cache != null) { - builder.append(ChatColor.GRAY).append("Any names suffixed by * are 'last seen names' and may not be up to date."); + builder.append(Style.GRAY).append("Any names suffixed by * are 'last seen names' and may not be up to date."); newLine(); } } diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/config/WorldConfiguration.java b/worldguard-core/src/main/java/com/sk89q/worldguard/config/WorldConfiguration.java index 6410e640a..018865903 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/config/WorldConfiguration.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/config/WorldConfiguration.java @@ -21,6 +21,7 @@ import com.sk89q.worldedit.world.entity.EntityType; import com.sk89q.worldedit.world.registry.LegacyMapper; +import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.blacklist.Blacklist; import com.sk89q.worldedit.util.report.Unreported; @@ -216,4 +217,20 @@ public String convertLegacyBlock(String legacy) { return block; } + + public int getMaxRegionCount(LocalPlayer player) { + int max = -1; + for (String group : player.getGroups()) { + if (maxRegionCounts.containsKey(group)) { + int groupMax = maxRegionCounts.get(group); + if (max < groupMax) { + max = groupMax; + } + } + } + if (max <= -1) { + max = maxRegionCountPerPlayer; + } + return max; + } } diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/protection/regions/RegionContainer.java b/worldguard-core/src/main/java/com/sk89q/worldguard/protection/regions/RegionContainer.java index 07e33fddf..f566599f9 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/protection/regions/RegionContainer.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/protection/regions/RegionContainer.java @@ -19,16 +19,24 @@ package com.sk89q.worldguard.protection.regions; +import static com.google.common.base.Preconditions.checkNotNull; + +import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.world.World; import com.sk89q.worldguard.WorldGuard; import com.sk89q.worldguard.config.ConfigurationManager; import com.sk89q.worldguard.protection.managers.RegionContainerImpl; import com.sk89q.worldguard.protection.managers.RegionManager; +import com.sk89q.worldguard.protection.managers.migration.Migration; +import com.sk89q.worldguard.protection.managers.migration.MigrationException; +import com.sk89q.worldguard.protection.managers.migration.UUIDMigration; import com.sk89q.worldguard.protection.managers.storage.RegionDriver; import java.util.Collections; import java.util.List; import java.util.Set; +import java.util.logging.Level; import javax.annotation.Nullable; @@ -52,6 +60,20 @@ public abstract class RegionContainer { public void initialize() { ConfigurationManager config = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); container = new RegionContainerImpl(config.selectedRegionStoreDriver, WorldGuard.getInstance().getFlagRegistry()); + + loadWorlds(); + + // Migrate to UUIDs + autoMigrate(); + } + + /** + * Save data and unload. + */ + public void unload() { + synchronized (lock) { + container.unloadAll(); + } } /** @@ -69,7 +91,12 @@ public RegionDriver getDriver() { *

This method may block until the data for all loaded worlds has been * unloaded and new data has been loaded.

*/ - public abstract void reload(); + public void reload() { + synchronized (lock) { + unload(); + loadWorlds(); + } + } /** * Get the region manager for a world if one exists. @@ -116,4 +143,80 @@ public RegionQuery createQuery() { return new RegionQuery(cache); } + /** + * Execute a migration and block any loading of region data during + * the migration. + * + * @param migration the migration + * @throws MigrationException thrown by the migration on error + */ + public void migrate(Migration migration) throws MigrationException { + checkNotNull(migration); + + synchronized (lock) { + try { + WorldGuard.logger.info("Unloading and saving region data that is currently loaded..."); + unload(); + migration.migrate(); + } finally { + WorldGuard.logger.info("Loading region data for loaded worlds..."); + loadWorlds(); + } + } + } + + /** + * Try loading the region managers for all currently loaded worlds. + */ + protected void loadWorlds() { + synchronized (lock) { + for (World world : WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS).getWorlds()) { + load(world); + } + } + } + + /** + * Unload the region data for a world. + * + * @param world a world + */ + public void unload(World world) { + checkNotNull(world); + + synchronized (lock) { + container.unload(world.getName()); + } + } + + /** + * Execute auto-migration. + */ + protected void autoMigrate() { + ConfigurationManager config = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); + + if (config.migrateRegionsToUuid) { + RegionDriver driver = getDriver(); + UUIDMigration migrator = new UUIDMigration(driver, WorldGuard.getInstance().getProfileService(), WorldGuard.getInstance().getFlagRegistry()); + migrator.setKeepUnresolvedNames(config.keepUnresolvedNames); + try { + migrate(migrator); + + WorldGuard.logger.info("Regions saved after UUID migration! This won't happen again unless " + + "you change the relevant configuration option in WorldGuard's config."); + + config.disableUuidMigration(); + } catch (MigrationException e) { + WorldGuard.logger.log(Level.WARNING, "Failed to execute the migration", e); + } + } + } + + /** + * Load the region data for a world if it has not been loaded already. + * + * @param world the world + * @return a region manager, either returned from the cache or newly loaded + */ + @Nullable protected abstract RegionManager load(World world); } diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/util/logging/LoggerToChatHandler.java b/worldguard-core/src/main/java/com/sk89q/worldguard/util/logging/LoggerToChatHandler.java similarity index 87% rename from worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/util/logging/LoggerToChatHandler.java rename to worldguard-core/src/main/java/com/sk89q/worldguard/util/logging/LoggerToChatHandler.java index 7267149e3..4fa94a600 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/util/logging/LoggerToChatHandler.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/util/logging/LoggerToChatHandler.java @@ -17,10 +17,10 @@ * along with this program. If not, see . */ -package com.sk89q.worldguard.bukkit.util.logging; +package com.sk89q.worldguard.util.logging; import com.sk89q.worldedit.extension.platform.Actor; -import org.bukkit.ChatColor; +import com.sk89q.worldedit.util.formatting.Style; import java.util.logging.Handler; import java.util.logging.LogRecord; @@ -62,7 +62,6 @@ public void flush() { */ @Override public void publish(LogRecord record) { - player.printRaw(ChatColor.GRAY + record.getLevel().getName() + ": " - + ChatColor.WHITE + record.getMessage()); + player.printDebug(record.getLevel().getName() + ": " + Style.WHITE + record.getMessage()); } } diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitRegionContainer.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitRegionContainer.java index bac0eeeb4..89aa4ae6d 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitRegionContainer.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitRegionContainer.java @@ -22,18 +22,15 @@ import static com.google.common.base.Preconditions.checkNotNull; import com.sk89q.worldedit.bukkit.BukkitAdapter; +import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.math.BlockVector2; +import com.sk89q.worldedit.world.World; import com.sk89q.worldguard.WorldGuard; -import com.sk89q.worldguard.config.ConfigurationManager; +import com.sk89q.worldguard.config.WorldConfiguration; import com.sk89q.worldguard.protection.managers.RegionManager; -import com.sk89q.worldguard.protection.managers.migration.Migration; -import com.sk89q.worldguard.protection.managers.migration.MigrationException; -import com.sk89q.worldguard.protection.managers.migration.UUIDMigration; -import com.sk89q.worldguard.protection.managers.storage.RegionDriver; import com.sk89q.worldguard.protection.regions.RegionContainer; import org.bukkit.Bukkit; import org.bukkit.Chunk; -import org.bukkit.World; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.world.ChunkLoadEvent; @@ -43,15 +40,11 @@ import java.util.ArrayList; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; import javax.annotation.Nullable; public class BukkitRegionContainer extends RegionContainer { - private static final Logger log = Logger.getLogger(BukkitRegionContainer.class.getCanonicalName()); - /** * Invalidation frequency in ticks. */ @@ -71,21 +64,15 @@ public BukkitRegionContainer(WorldGuardPlugin plugin) { @Override public void initialize() { super.initialize(); - - loadWorlds(); - - // Migrate to UUIDs - autoMigrate(); - Bukkit.getPluginManager().registerEvents(new Listener() { @EventHandler public void onWorldLoad(WorldLoadEvent event) { - load(event.getWorld()); + load(BukkitAdapter.adapt(event.getWorld())); } @EventHandler public void onWorldUnload(WorldUnloadEvent event) { - unload(event.getWorld()); + unload(BukkitAdapter.adapt(event.getWorld())); } @EventHandler @@ -110,60 +97,12 @@ public void onChunkUnload(ChunkUnloadEvent event) { Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, cache::invalidateAll, CACHE_INVALIDATION_INTERVAL, CACHE_INVALIDATION_INTERVAL); } - /** - * Save data and unload. - */ - void unload() { - synchronized (lock) { - container.unloadAll(); - } - } - - /** - * Get the region store driver. - * - * @return the driver - */ - public RegionDriver getDriver() { - return container.getDriver(); - } - - /** - * Try loading the region managers for all currently loaded worlds. - */ - private void loadWorlds() { - synchronized (lock) { - for (World world : Bukkit.getServer().getWorlds()) { - load(world); - } - } - } - - /** - * Reload the region container. - * - *

This method may block until the data for all loaded worlds has been - * unloaded and new data has been loaded.

- */ - public void reload() { - synchronized (lock) { - unload(); - loadWorlds(); - } - } - - /** - * Load the region data for a world if it has not been loaded already. - * - * @param world the world - * @return a region manager, either returned from the cache or newly loaded - */ + @Override @Nullable - private RegionManager load(World world) { + protected RegionManager load(World world) { checkNotNull(world); - BukkitWorldConfiguration config = - (BukkitWorldConfiguration) WorldGuard.getInstance().getPlatform().getGlobalStateManager().get(BukkitAdapter.adapt(world)); + WorldConfiguration config = WorldGuard.getInstance().getPlatform().getGlobalStateManager().get(world); if (!config.useRegions) { return null; } @@ -176,7 +115,7 @@ private RegionManager load(World world) { if (manager != null) { // Bias the region data for loaded chunks List positions = new ArrayList<>(); - for (Chunk chunk : world.getLoadedChunks()) { + for (Chunk chunk : ((BukkitWorld) world).getWorld().getLoadedChunks()) { positions.add(BlockVector2.at(chunk.getX(), chunk.getZ())); } manager.loadChunks(positions); @@ -186,62 +125,4 @@ private RegionManager load(World world) { return manager; } - /** - * Unload the region data for a world. - * - * @param world a world - */ - void unload(World world) { - checkNotNull(world); - - synchronized (lock) { - container.unload(world.getName()); - } - } - - /** - * Execute a migration and block any loading of region data during - * the migration. - * - * @param migration the migration - * @throws MigrationException thrown by the migration on error - */ - public void migrate(Migration migration) throws MigrationException { - checkNotNull(migration); - - synchronized (lock) { - try { - log.info("Unloading and saving region data that is currently loaded..."); - unload(); - migration.migrate(); - } finally { - log.info("Loading region data for loaded worlds..."); - loadWorlds(); - } - } - } - - /** - * Execute auto-migration. - */ - private void autoMigrate() { - ConfigurationManager config = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); - - if (config.migrateRegionsToUuid) { - RegionDriver driver = getDriver(); - UUIDMigration migrator = new UUIDMigration(driver, WorldGuard.getInstance().getProfileService(), WorldGuard.getInstance().getFlagRegistry()); - migrator.setKeepUnresolvedNames(config.keepUnresolvedNames); - try { - migrate(migrator); - - log.info("Regions saved after UUID migration! This won't happen again unless " + - "you change the relevant configuration option in WorldGuard's config."); - - config.disableUuidMigration(); - } catch (MigrationException e) { - log.log(Level.WARNING, "Failed to execute the migration", e); - } - } - } - } diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldConfiguration.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldConfiguration.java index c13180920..9ccce614c 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldConfiguration.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldConfiguration.java @@ -36,11 +36,9 @@ import com.sk89q.worldguard.blacklist.target.TargetMatcherParseException; import com.sk89q.worldguard.blacklist.target.TargetMatcherParser; import com.sk89q.worldguard.bukkit.chest.BukkitSignChestProtection; -import com.sk89q.worldguard.bukkit.commands.CommandUtils; import com.sk89q.worldguard.bukkit.internal.TargetMatcherSet; import com.sk89q.worldguard.chest.ChestProtection; import com.sk89q.worldguard.config.YamlWorldConfiguration; -import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffectType; import org.yaml.snakeyaml.parser.ParserException; @@ -384,10 +382,12 @@ public void loadConfiguration() { config.save(); } + @Override public Blacklist getBlacklist() { return this.blacklist; } + @Override public String getWorldName() { return this.worldName; } @@ -434,19 +434,4 @@ public ChestProtection getChestProtection() { return chestProtection; } - public int getMaxRegionCount(LocalPlayer player) { - int max = -1; - for (String group : player.getGroups()) { - if (maxRegionCounts.containsKey(group)) { - int groupMax = maxRegionCounts.get(group); - if (max < groupMax) { - max = groupMax; - } - } - } - if (max <= -1) { - max = maxRegionCountPerPlayer; - } - return max; - } } diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/CommandUtils.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/CommandUtils.java index f4b487fdd..0bfa2d2f1 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/CommandUtils.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/CommandUtils.java @@ -21,7 +21,7 @@ import com.google.common.base.Function; import com.sk89q.worldedit.extension.platform.Actor; -import org.bukkit.ChatColor; +import com.sk89q.worldedit.util.formatting.Style; import org.bukkit.command.BlockCommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; @@ -45,72 +45,40 @@ private CommandUtils() { public static String replaceColorMacros(String str) { // TODO: Make this more efficient - str = str.replace("`r", ChatColor.RED.toString()); - str = str.replace("`R", ChatColor.DARK_RED.toString()); + str = str.replace("`r", Style.RED.toString()); + str = str.replace("`R", Style.RED_DARK.toString()); - str = str.replace("`y", ChatColor.YELLOW.toString()); - str = str.replace("`Y", ChatColor.GOLD.toString()); + str = str.replace("`y", Style.YELLOW.toString()); + str = str.replace("`Y", Style.YELLOW_DARK.toString()); - str = str.replace("`g", ChatColor.GREEN.toString()); - str = str.replace("`G", ChatColor.DARK_GREEN.toString()); + str = str.replace("`g", Style.GREEN.toString()); + str = str.replace("`G", Style.GREEN_DARK.toString()); - str = str.replace("`c", ChatColor.AQUA.toString()); - str = str.replace("`C", ChatColor.DARK_AQUA.toString()); + str = str.replace("`c", Style.CYAN.toString()); + str = str.replace("`C", Style.CYAN_DARK.toString()); - str = str.replace("`b", ChatColor.BLUE.toString()); - str = str.replace("`B", ChatColor.DARK_BLUE.toString()); + str = str.replace("`b", Style.BLUE.toString()); + str = str.replace("`B", Style.BLUE_DARK.toString()); - str = str.replace("`p", ChatColor.LIGHT_PURPLE.toString()); - str = str.replace("`P", ChatColor.DARK_PURPLE.toString()); + str = str.replace("`p", Style.PURPLE.toString()); + str = str.replace("`P", Style.PURPLE_DARK.toString()); - str = str.replace("`0", ChatColor.BLACK.toString()); - str = str.replace("`1", ChatColor.DARK_GRAY.toString()); - str = str.replace("`2", ChatColor.GRAY.toString()); - str = str.replace("`w", ChatColor.WHITE.toString()); + str = str.replace("`0", Style.BLACK.toString()); + str = str.replace("`1", Style.GRAY_DARK.toString()); + str = str.replace("`2", Style.GRAY.toString()); + str = str.replace("`w", Style.WHITE.toString()); - str = str.replace("`k", ChatColor.MAGIC.toString()); + str = str.replace("`k", Style.RANDOMIZE.toString()); - str = str.replace("`l", ChatColor.BOLD.toString()); - str = str.replace("`m", ChatColor.STRIKETHROUGH.toString()); - str = str.replace("`n", ChatColor.UNDERLINE.toString()); - str = str.replace("`o", ChatColor.ITALIC.toString()); + str = str.replace("`l", Style.BOLD.toString()); + str = str.replace("`m", Style.STRIKETHROUGH.toString()); + str = str.replace("`n", Style.UNDERLINE.toString()); + str = str.replace("`o", Style.ITALIC.toString()); - str = str.replace("`x", ChatColor.RESET.toString()); + str = str.replace("`x", Style.RESET.toString()); // MC classic - - str = str.replace("&c", ChatColor.RED.toString()); - str = str.replace("&4", ChatColor.DARK_RED.toString()); - - str = str.replace("&e", ChatColor.YELLOW.toString()); - str = str.replace("&6", ChatColor.GOLD.toString()); - - str = str.replace("&a", ChatColor.GREEN.toString()); - str = str.replace("&2", ChatColor.DARK_GREEN.toString()); - - str = str.replace("&b", ChatColor.AQUA.toString()); - str = str.replace("&3", ChatColor.DARK_AQUA.toString()); - - str = str.replace("&9", ChatColor.BLUE.toString()); - str = str.replace("&1", ChatColor.DARK_BLUE.toString()); - - str = str.replace("&d", ChatColor.LIGHT_PURPLE.toString()); - str = str.replace("&5", ChatColor.DARK_PURPLE.toString()); - - str = str.replace("&0", ChatColor.BLACK.toString()); - str = str.replace("&8", ChatColor.DARK_GRAY.toString()); - str = str.replace("&7", ChatColor.GRAY.toString()); - str = str.replace("&f", ChatColor.WHITE.toString()); - - str = str.replace("&k", ChatColor.MAGIC.toString()); - - str = str.replace("&l", ChatColor.BOLD.toString()); - str = str.replace("&m", ChatColor.STRIKETHROUGH.toString()); - str = str.replace("&n", ChatColor.UNDERLINE.toString()); - str = str.replace("&o", ChatColor.ITALIC.toString()); - - str = str.replace("&x", ChatColor.RESET.toString()); - str = str.replace("&r", ChatColor.RESET.toString()); + str = Style.translateAlternateColorCodes('&', str); return str; } diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/ToggleCommands.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/ToggleCommands.java index 42e099a86..fe5cc6f08 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/ToggleCommands.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/ToggleCommands.java @@ -24,13 +24,13 @@ import com.sk89q.minecraft.util.commands.CommandException; import com.sk89q.minecraft.util.commands.CommandPermissions; import com.sk89q.worldedit.extension.platform.Actor; +import com.sk89q.worldedit.util.formatting.Style; import com.sk89q.worldedit.world.World; import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.WorldGuard; import com.sk89q.worldguard.bukkit.BukkitUtil; import com.sk89q.worldguard.config.ConfigurationManager; import com.sk89q.worldguard.config.WorldConfiguration; -import org.bukkit.ChatColor; import org.bukkit.entity.Entity; public class ToggleCommands { @@ -57,7 +57,7 @@ public void stopFire(CommandContext args, Actor sender) throws CommandException if (!wcfg.fireSpreadDisableToggle) { plugin.getServer().broadcastMessage( - ChatColor.YELLOW + Style.YELLOW + "Fire spread has been globally disabled for '" + world.getName() + "' by " + sender.getDisplayName() + "."); } else { @@ -83,7 +83,7 @@ public void allowFire(CommandContext args, Actor sender) throws CommandException WorldConfiguration wcfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager().get(world); if (wcfg.fireSpreadDisableToggle) { - plugin.getServer().broadcastMessage(ChatColor.YELLOW + plugin.getServer().broadcastMessage(Style.YELLOW + "Fire spread has been globally for '" + world.getName() + "' re-enabled by " + sender.getDisplayName() + "."); } else { @@ -115,7 +115,7 @@ public void stopLag(CommandContext args, Actor sender) throws CommandException { } if (!args.hasFlag('s')) { - plugin.getServer().broadcastMessage(ChatColor.YELLOW + plugin.getServer().broadcastMessage(Style.YELLOW + "ALL intensive server activity halted by " + sender.getDisplayName() + "."); } else { @@ -139,7 +139,7 @@ public void stopLag(CommandContext args, Actor sender) throws CommandException { } } else { if (!args.hasFlag('s')) { - plugin.getServer().broadcastMessage(ChatColor.YELLOW + plugin.getServer().broadcastMessage(Style.YELLOW + "ALL intensive server activity is now allowed."); if (!(sender instanceof LocalPlayer)) { diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/WorldGuardCommands.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/WorldGuardCommands.java index 9f1ffcc13..32d16cd7e 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/WorldGuardCommands.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/WorldGuardCommands.java @@ -33,14 +33,16 @@ import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.util.auth.AuthorizationException; +import com.sk89q.worldedit.util.formatting.Style; import com.sk89q.worldedit.util.paste.ActorCallbackPaste; import com.sk89q.worldedit.util.report.ReportList; import com.sk89q.worldedit.util.report.SystemInfoReport; +import com.sk89q.worldedit.util.task.Task; +import com.sk89q.worldedit.util.task.TaskStateComparator; import com.sk89q.worldedit.world.World; import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.WorldGuard; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; -import com.sk89q.worldguard.bukkit.util.logging.LoggerToChatHandler; import com.sk89q.worldguard.bukkit.util.report.PerformanceReport; import com.sk89q.worldguard.bukkit.util.report.PluginReport; import com.sk89q.worldguard.bukkit.util.report.SchedulerReport; @@ -48,14 +50,12 @@ import com.sk89q.worldguard.bukkit.util.report.ServicesReport; import com.sk89q.worldguard.bukkit.util.report.WorldReport; import com.sk89q.worldguard.config.ConfigurationManager; +import com.sk89q.worldguard.util.logging.LoggerToChatHandler; import com.sk89q.worldguard.util.profiler.SamplerBuilder; import com.sk89q.worldguard.util.profiler.SamplerBuilder.Sampler; import com.sk89q.worldguard.util.profiler.ThreadIdFilter; import com.sk89q.worldguard.util.profiler.ThreadNameFilter; import com.sk89q.worldguard.util.report.ConfigReport; -import com.sk89q.worldedit.util.task.Task; -import com.sk89q.worldedit.util.task.TaskStateComparator; -import org.bukkit.ChatColor; import org.bukkit.entity.Player; import java.io.File; @@ -279,18 +279,18 @@ public void listRunningTasks(CommandContext args, Actor sender) throws CommandEx if (!tasks.isEmpty()) { tasks.sort(new TaskStateComparator()); StringBuilder builder = new StringBuilder(); - builder.append(ChatColor.GRAY); + builder.append(Style.GRAY); builder.append("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550"); builder.append(" Running tasks "); builder.append("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550"); - builder.append("\n").append(ChatColor.GRAY).append("Note: Some 'running' tasks may be waiting to be start."); + builder.append("\n").append(Style.GRAY).append("Note: Some 'running' tasks may be waiting to be start."); for (Task task : tasks) { builder.append("\n"); - builder.append(ChatColor.BLUE).append("(").append(task.getState().name()).append(") "); - builder.append(ChatColor.YELLOW); + builder.append(Style.BLUE).append("(").append(task.getState().name()).append(") "); + builder.append(Style.YELLOW); builder.append(CommandUtils.getOwnerName(task.getOwner())); builder.append(": "); - builder.append(ChatColor.WHITE); + builder.append(Style.WHITE); builder.append(task.getName()); } sender.printRaw(builder.toString()); diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/MemberCommands.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/MemberCommands.java index 40fdef6a6..7db67370a 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/MemberCommands.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/MemberCommands.java @@ -31,7 +31,6 @@ import com.sk89q.worldedit.world.World; import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.WorldGuard; -import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration; import com.sk89q.worldguard.domains.DefaultDomain; import com.sk89q.worldguard.protection.flags.Flags; import com.sk89q.worldguard.protection.managers.RegionManager; @@ -113,7 +112,7 @@ public void addOwner(CommandContext args, Actor sender) throws CommandException, if (flag != null && flag && owners != null && owners.size() == 0) { // TODO: Move this to an event if (!sender.hasPermission("worldguard.region.unlimited")) { - int maxRegionCount = ((BukkitWorldConfiguration) WorldGuard.getInstance().getPlatform().getGlobalStateManager().get(world)).getMaxRegionCount(player); + int maxRegionCount = WorldGuard.getInstance().getPlatform().getGlobalStateManager().get(world).getMaxRegionCount(player); if (maxRegionCount >= 0 && manager.getRegionCountOfPlayer(player) >= maxRegionCount) { throw new CommandException("You already own the maximum allowed amount of regions."); diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommands.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommands.java index dee0d7257..9245c6c4a 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommands.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommands.java @@ -35,19 +35,19 @@ import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.util.Location; +import com.sk89q.worldedit.util.formatting.Style; import com.sk89q.worldedit.world.World; import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.WorldGuard; -import com.sk89q.worldguard.bukkit.BukkitRegionContainer; -import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration; import com.sk89q.worldguard.bukkit.commands.CommandUtils; -import com.sk89q.worldguard.bukkit.util.logging.LoggerToChatHandler; +import com.sk89q.worldguard.commands.region.RegionPrintoutBuilder; import com.sk89q.worldguard.commands.task.RegionAdder; import com.sk89q.worldguard.commands.task.RegionLister; import com.sk89q.worldguard.commands.task.RegionManagerReloader; import com.sk89q.worldguard.commands.task.RegionManagerSaver; import com.sk89q.worldguard.commands.task.RegionRemover; import com.sk89q.worldguard.config.ConfigurationManager; +import com.sk89q.worldguard.config.WorldConfiguration; import com.sk89q.worldguard.internal.permission.RegionPermissionModel; import com.sk89q.worldguard.protection.ApplicableRegionSet; import com.sk89q.worldguard.protection.flags.Flag; @@ -68,9 +68,10 @@ import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion.CircularInheritanceException; +import com.sk89q.worldguard.protection.regions.RegionContainer; import com.sk89q.worldguard.protection.util.DomainInputResolver.UserLocatorPolicy; import com.sk89q.worldguard.util.Enums; -import org.bukkit.ChatColor; +import com.sk89q.worldguard.util.logging.LoggerToChatHandler; import java.util.ArrayList; import java.util.Collections; @@ -225,8 +226,7 @@ public void claim(CommandContext args, Actor sender) throws CommandException { checkRegionDoesNotExist(manager, id, false); ProtectedRegion region = checkRegionFromSelection(player, id); - BukkitWorldConfiguration wcfg = - (BukkitWorldConfiguration) WorldGuard.getInstance().getPlatform().getGlobalStateManager().get(player.getWorld()); + WorldConfiguration wcfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager().get(player.getWorld()); // Check whether the player has created too many regions if (!permModel.mayClaimRegionsUnbounded()) { @@ -516,9 +516,9 @@ public void flag(CommandContext args, Actor sender) throws CommandException { String flag = flagList.get(i); if (i % 2 == 0) { - list.append(ChatColor.GRAY); + list.append(Style.GRAY); } else { - list.append(ChatColor.RED); + list.append(Style.RED); } list.append(flag); @@ -569,7 +569,7 @@ public void flag(CommandContext args, Actor sender) throws CommandException { throw new CommandException(e.getMessage()); } - sender.print("Region flag " + foundFlag.getName() + " set on '" + existing.getId() + "' to '" + ChatColor.stripColor(value) + "'."); + sender.print("Region flag " + foundFlag.getName() + " set on '" + existing.getId() + "' to '" + Style.stripColor(value) + "'."); // No value? Clear the flag, if -g isn't specified } else if (!args.hasFlag('g')) { @@ -601,7 +601,7 @@ public void flag(CommandContext args, Actor sender) throws CommandException { // Print region information RegionPrintoutBuilder printout = new RegionPrintoutBuilder(existing, null); - printout.append(ChatColor.GRAY); + printout.append(Style.GRAY); printout.append("(Current flags: "); printout.appendFlagsList(false); printout.append(")"); @@ -680,14 +680,14 @@ public void setParent(CommandContext args, Actor sender) throws CommandException } catch (CircularInheritanceException e) { // Tell the user what's wrong RegionPrintoutBuilder printout = new RegionPrintoutBuilder(parent, null); - printout.append(ChatColor.RED); + printout.append(Style.RED); assert parent != null; printout.append("Uh oh! Setting '" + parent.getId() + "' to be the parent " + "of '" + child.getId() + "' would cause circular inheritance.\n"); - printout.append(ChatColor.GRAY); + printout.append(Style.GRAY); printout.append("(Current inheritance on '" + parent.getId() + "':\n"); printout.appendParentTree(true); - printout.append(ChatColor.GRAY); + printout.append(Style.GRAY); printout.append(")"); printout.send(sender); return; @@ -695,13 +695,13 @@ public void setParent(CommandContext args, Actor sender) throws CommandException // Tell the user the current inheritance RegionPrintoutBuilder printout = new RegionPrintoutBuilder(child, null); - printout.append(ChatColor.YELLOW); + printout.append(Style.YELLOW); printout.append("Inheritance set for region '" + child.getId() + "'.\n"); if (parent != null) { - printout.append(ChatColor.GRAY); + printout.append(Style.GRAY); printout.append("(Current inheritance:\n"); printout.appendParentTree(true); - printout.append(ChatColor.GRAY); + printout.append(Style.GRAY); printout.append(")"); } printout.send(sender); @@ -933,7 +933,7 @@ public void migrateDB(CommandContext args, Actor sender) throws CommandException } try { - BukkitRegionContainer container = (BukkitRegionContainer) WorldGuard.getInstance().getPlatform().getRegionContainer(); + RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer(); sender.print("Now performing migration... this may take a while."); container.migrate(migration); sender.print( @@ -977,7 +977,7 @@ public void migrateUuid(CommandContext args, Actor sender) throws CommandExcepti try { ConfigurationManager config = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); - BukkitRegionContainer container = (BukkitRegionContainer) WorldGuard.getInstance().getPlatform().getRegionContainer(); + RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer(); RegionDriver driver = container.getDriver(); UUIDMigration migration = new UUIDMigration(driver, WorldGuard.getInstance().getProfileService(), WorldGuard.getInstance().getFlagRegistry()); migration.setKeepUnresolvedNames(config.keepUnresolvedNames); diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java index 7ae5dff84..1f968a6f6 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java @@ -32,6 +32,7 @@ import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.selector.CuboidRegionSelector; import com.sk89q.worldedit.regions.selector.Polygonal2DRegionSelector; +import com.sk89q.worldedit.util.formatting.Style; import com.sk89q.worldedit.world.World; import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.WorldGuard; @@ -47,7 +48,6 @@ import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.RegionContainer; -import org.bukkit.ChatColor; import java.util.Set; import java.util.stream.Collectors; @@ -299,7 +299,7 @@ protected static void warnAboutSaveFailures(Actor sender) { if (failures.size() > 0) { String failingList = Joiner.on(", ").join(failures.stream().map(regionManager -> "'" + regionManager.getName() + "'").collect(Collectors.toList())); - sender.printRaw(ChatColor.GOLD + + sender.printRaw(Style.YELLOW_DARK + "(Warning: The background saving of region data is failing for these worlds: " + failingList + ". " + "Your changes are getting lost. See the server log for more information.)"); } @@ -327,11 +327,11 @@ protected static void warnAboutDimensions(Actor sender, ProtectedRegion region) */ protected static void informNewUser(Actor sender, RegionManager manager, ProtectedRegion region) { if (manager.getRegions().size() <= 2) { - sender.printRaw(ChatColor.GRAY + + sender.printRaw(Style.GRAY + "(This region is NOW PROTECTED from modification from others. " + "Don't want that? Use " + - ChatColor.AQUA + "/rg flag " + region.getId() + " passthrough allow" + - ChatColor.GRAY + ")"); + Style.CYAN + "/rg flag " + region.getId() + " passthrough allow" + + Style.GRAY + ")"); } }