mirror of
https://gitlab.com/SamB440/rpgregions-2.git
synced 2025-12-27 10:49:08 +00:00
Add information for main-thread blocking classes
This commit is contained in:
@@ -49,7 +49,7 @@ dependencies {
|
||||
testImplementation 'org.reflections:reflections:0.9.12'
|
||||
|
||||
implementation 'net.wesjd:anvilgui:1.5.1-SNAPSHOT' // anvilgui
|
||||
implementation 'com.github.stefvanschie.inventoryframework:IF:0.9.9' // inventory framework
|
||||
implementation 'com.github.stefvanschie.inventoryframework:IF:0.10.0' // inventory framework
|
||||
implementation 'com.gitlab.samb440:languagy:2.0.3-RELEASE' // languagy
|
||||
implementation 'co.aikar:acf-paper:0.5.0-SNAPSHOT' // commands
|
||||
implementation 'co.aikar:idb-core:1.0.0-SNAPSHOT' // database
|
||||
|
||||
@@ -3,12 +3,13 @@ package net.islandearth.rpgregions.api.integrations.hooks;
|
||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||
import net.islandearth.rpgregions.RPGRegions;
|
||||
import net.islandearth.rpgregions.managers.data.account.RPGRegionsAccount;
|
||||
import net.islandearth.rpgregions.thread.Blocking;
|
||||
import net.islandearth.rpgregions.translation.Translations;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class PlaceholderRegionHook extends PlaceholderExpansion {
|
||||
public class PlaceholderRegionHook extends PlaceholderExpansion implements Blocking {
|
||||
|
||||
private final RPGRegions plugin;
|
||||
|
||||
|
||||
@@ -8,7 +8,11 @@ import co.aikar.commands.annotation.Subcommand;
|
||||
import co.aikar.idb.DB;
|
||||
import co.aikar.idb.Database;
|
||||
import net.islandearth.rpgregions.RPGRegions;
|
||||
import net.islandearth.rpgregions.effects.RegionEffect;
|
||||
import net.islandearth.rpgregions.managers.data.IStorageManager;
|
||||
import net.islandearth.rpgregions.requirements.RegionRequirement;
|
||||
import net.islandearth.rpgregions.rewards.DiscoveryReward;
|
||||
import net.islandearth.rpgregions.thread.Blocking;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -43,6 +47,24 @@ public class RPGRegionsDebugCommand extends BaseCommand {
|
||||
sender.sendMessage(ChatColor.GRAY + "Driver: " + connection.getMetaData().getDriverName());
|
||||
sender.sendMessage(ChatColor.GRAY + "Version: " + connection.getMetaData().getDriverVersion());
|
||||
}
|
||||
|
||||
plugin.getManagers().getRegionsCache().getConfiguredRegions().forEach((name, configuredRegion) -> {
|
||||
for (DiscoveryReward reward : configuredRegion.getRewards()) {
|
||||
if (reward instanceof Blocking) {
|
||||
sender.sendMessage(ChatColor.RED + "Region " + name + " has blocking class " + reward + ".");
|
||||
}
|
||||
}
|
||||
for (RegionRequirement requirement : configuredRegion.getRequirements()) {
|
||||
if (requirement instanceof Blocking) {
|
||||
sender.sendMessage(ChatColor.RED + "Region " + name + " has blocking class " + requirement + ".");
|
||||
}
|
||||
}
|
||||
for (RegionEffect effect : configuredRegion.getEffects()) {
|
||||
if (effect instanceof Blocking) {
|
||||
sender.sendMessage(ChatColor.RED + "Region " + name + " has blocking class " + effect + ".");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Subcommand("cache")
|
||||
|
||||
@@ -27,6 +27,7 @@ import net.islandearth.rpgregions.managers.registry.IRPGRegionsRegistry;
|
||||
import net.islandearth.rpgregions.managers.registry.RPGRegionsRegistry;
|
||||
import net.islandearth.rpgregions.regenerate.Regenerate;
|
||||
import net.islandearth.rpgregions.regenerate.entity.RegeneratingEntity;
|
||||
import net.islandearth.rpgregions.requirements.RegionRequirement;
|
||||
import net.islandearth.rpgregions.requirements.RegionRequirementRegistry;
|
||||
import net.islandearth.rpgregions.rewards.ConsoleCommandReward;
|
||||
import net.islandearth.rpgregions.rewards.DiscoveryReward;
|
||||
@@ -35,6 +36,7 @@ import net.islandearth.rpgregions.rewards.ItemReward;
|
||||
import net.islandearth.rpgregions.rewards.MessageReward;
|
||||
import net.islandearth.rpgregions.rewards.PlayerCommandReward;
|
||||
import net.islandearth.rpgregions.rewards.RegionRewardRegistry;
|
||||
import net.islandearth.rpgregions.thread.Blocking;
|
||||
import net.islandearth.rpgregions.utils.ItemStackBuilder;
|
||||
import net.islandearth.rpgregions.utils.XSound;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -137,6 +139,7 @@ public class RPGRegionsManagers implements IRPGRegionsManagers {
|
||||
try (Reader reader = new FileReader(file)) {
|
||||
ConfiguredRegion region = plugin.getGson().fromJson(reader, ConfiguredRegion.class);
|
||||
if (!region.getId().equals("exampleconfig")) regionsCache.addConfiguredRegion(region);
|
||||
warnBlocking(plugin, region);
|
||||
} catch (Exception e) {
|
||||
plugin.getLogger().log(Level.SEVERE, "Error loading region config " + file.getName() + ".", e);
|
||||
}
|
||||
@@ -163,6 +166,28 @@ public class RPGRegionsManagers implements IRPGRegionsManagers {
|
||||
guiFieldElementRegistry.register(new CompareTypeGuiFieldElement());
|
||||
}
|
||||
|
||||
private void warnBlocking(RPGRegions plugin, ConfiguredRegion region) {
|
||||
List<Blocking> blocking = new ArrayList<>();
|
||||
for (DiscoveryReward reward : region.getRewards()) {
|
||||
if (reward instanceof Blocking) {
|
||||
blocking.add((Blocking) reward);
|
||||
}
|
||||
}
|
||||
for (RegionRequirement requirement : region.getRequirements()) {
|
||||
if (requirement instanceof Blocking) {
|
||||
blocking.add((Blocking) requirement);
|
||||
}
|
||||
}
|
||||
for (RegionEffect effect : region.getEffects()) {
|
||||
if (effect instanceof Blocking) {
|
||||
blocking.add((Blocking) effect);
|
||||
}
|
||||
}
|
||||
for (Blocking blockingClass : blocking) {
|
||||
blockingClass.log(plugin);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IStorageManager getStorageManager() {
|
||||
return storageManager;
|
||||
|
||||
@@ -5,12 +5,13 @@ import me.blackvein.quests.Quester;
|
||||
import me.blackvein.quests.Quests;
|
||||
import net.islandearth.rpgregions.api.IRPGRegionsAPI;
|
||||
import net.islandearth.rpgregions.gui.GuiEditable;
|
||||
import net.islandearth.rpgregions.thread.Blocking;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class QuestRequirement extends RegionRequirement {
|
||||
public class QuestRequirement extends RegionRequirement implements Blocking {
|
||||
|
||||
@GuiEditable("Quest id")
|
||||
private final String questId;
|
||||
|
||||
@@ -5,12 +5,13 @@ import me.blackvein.quests.Quester;
|
||||
import me.blackvein.quests.Quests;
|
||||
import net.islandearth.rpgregions.api.IRPGRegionsAPI;
|
||||
import net.islandearth.rpgregions.gui.GuiEditable;
|
||||
import net.islandearth.rpgregions.thread.Blocking;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class QuestReward extends DiscoveryReward {
|
||||
public class QuestReward extends DiscoveryReward implements Blocking {
|
||||
|
||||
@GuiEditable("Quest id")
|
||||
private final String questId;
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package net.islandearth.rpgregions.thread;
|
||||
|
||||
import net.islandearth.rpgregions.RPGRegions;
|
||||
|
||||
/**
|
||||
* Used to indicate a class has main-thread blocking code.
|
||||
*/
|
||||
public interface Blocking {
|
||||
|
||||
default void log(RPGRegions plugin) {
|
||||
plugin.getLogger().warning("This class (" + this.getClass().getSimpleName() + ") has main-thread blocking code.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user