mirror of
https://gitlab.com/SamB440/rpgregions-2.git
synced 2025-12-28 11:19:24 +00:00
feature: allow PAPI parsing in command rewards if available
This commit is contained in:
@@ -48,6 +48,7 @@ import net.islandearth.rpgregions.rewards.ExperienceReward;
|
||||
import net.islandearth.rpgregions.rewards.ItemReward;
|
||||
import net.islandearth.rpgregions.rewards.MessageReward;
|
||||
import net.islandearth.rpgregions.rewards.MoneyReward;
|
||||
import net.islandearth.rpgregions.rewards.PlaceholderConsoleCommandReward;
|
||||
import net.islandearth.rpgregions.rewards.PlayerCommandReward;
|
||||
import net.islandearth.rpgregions.rewards.QuestReward;
|
||||
import net.islandearth.rpgregions.rewards.RegionDiscoverReward;
|
||||
@@ -75,221 +76,222 @@ import java.util.concurrent.ExecutionException;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public final class RPGRegions extends JavaPlugin implements IRPGRegionsAPI {
|
||||
|
||||
private RPGRegionsManagers managers;
|
||||
private PaperCommandManager commandManager;
|
||||
|
||||
public PaperCommandManager getCommandManager() {
|
||||
return commandManager;
|
||||
}
|
||||
private RPGRegionsManagers managers;
|
||||
private PaperCommandManager commandManager;
|
||||
|
||||
@Override
|
||||
public Translator getTranslator() {
|
||||
return translator;
|
||||
}
|
||||
public PaperCommandManager getCommandManager() {
|
||||
return commandManager;
|
||||
}
|
||||
|
||||
private Translator translator;
|
||||
@Override
|
||||
public Translator getTranslator() {
|
||||
return translator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
RPGRegionsAPI.setAPI(this);
|
||||
this.createConfig();
|
||||
this.generateLang();
|
||||
this.commandManager = new PaperCommandManager(this);
|
||||
try {
|
||||
this.managers = new RPGRegionsManagers(this);
|
||||
} catch (ReflectiveOperationException | IOException | CouldNotStartException e) {
|
||||
getLogger().log(Level.SEVERE, "Error starting managers, please report this!", e);
|
||||
Bukkit.getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
}
|
||||
this.registerRewards();
|
||||
this.registerRequirements();
|
||||
this.registerEffects();
|
||||
this.registerListeners();
|
||||
this.registerCommands();
|
||||
this.translator = Translator.of(this);
|
||||
this.registerTasks();
|
||||
this.registerMetrics();
|
||||
private Translator translator;
|
||||
|
||||
// Tell integration to enable
|
||||
if (managers.getIntegrationManager() instanceof RPGRegionsIntegration rpgRegionsIntegration) {
|
||||
rpgRegionsIntegration.onEnable();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onEnable() {
|
||||
RPGRegionsAPI.setAPI(this);
|
||||
this.createConfig();
|
||||
this.generateLang();
|
||||
this.commandManager = new PaperCommandManager(this);
|
||||
try {
|
||||
this.managers = new RPGRegionsManagers(this);
|
||||
} catch (ReflectiveOperationException | IOException | CouldNotStartException e) {
|
||||
getLogger().log(Level.SEVERE, "Error starting managers, please report this!", e);
|
||||
Bukkit.getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
}
|
||||
this.registerRewards();
|
||||
this.registerRequirements();
|
||||
this.registerEffects();
|
||||
this.registerListeners();
|
||||
this.registerCommands();
|
||||
this.translator = Translator.of(this);
|
||||
this.registerTasks();
|
||||
this.registerMetrics();
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
translator.close();
|
||||
// Tell integration to enable
|
||||
if (managers.getIntegrationManager() instanceof RPGRegionsIntegration rpgRegionsIntegration) {
|
||||
rpgRegionsIntegration.onEnable();
|
||||
}
|
||||
}
|
||||
|
||||
if (managers == null || managers.getRegionsCache() == null || managers.getStorageManager() == null) {
|
||||
getLogger().warning("Unable to save data as managers were null");
|
||||
} else {
|
||||
// Save all player data (quit event not called for shutdown)
|
||||
Bukkit.getOnlinePlayers().forEach(player -> {
|
||||
if (managers.getStorageManager().getCachedAccounts().containsKey(player.getUniqueId())) {
|
||||
try {
|
||||
this.getManagers().getStorageManager().removeCachedAccount(player.getUniqueId()).get();
|
||||
} catch (InterruptedException | ExecutionException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onDisable() {
|
||||
translator.close();
|
||||
|
||||
// Tell integration to save
|
||||
if (managers.getIntegrationManager() instanceof RPGRegionsIntegration rpgRegionsIntegration) {
|
||||
rpgRegionsIntegration.onDisable();
|
||||
}
|
||||
if (managers == null || managers.getRegionsCache() == null || managers.getStorageManager() == null) {
|
||||
getLogger().warning("Unable to save data as managers were null");
|
||||
} else {
|
||||
// Save all player data (quit event not called for shutdown)
|
||||
Bukkit.getOnlinePlayers().forEach(player -> {
|
||||
if (managers.getStorageManager().getCachedAccounts().containsKey(player.getUniqueId())) {
|
||||
try {
|
||||
this.getManagers().getStorageManager().removeCachedAccount(player.getUniqueId()).get();
|
||||
} catch (InterruptedException | ExecutionException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Save all region configs
|
||||
managers.getRegionsCache().getConfiguredRegions().forEach((id, region) -> region.save(this));
|
||||
}
|
||||
// Tell integration to save
|
||||
if (managers.getIntegrationManager() instanceof RPGRegionsIntegration rpgRegionsIntegration) {
|
||||
rpgRegionsIntegration.onDisable();
|
||||
}
|
||||
|
||||
RPGRegionsAPI.setAPI(null);
|
||||
DB.close();
|
||||
}
|
||||
// Save all region configs
|
||||
managers.getRegionsCache().getConfiguredRegions().forEach((id, region) -> region.save(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RPGRegionsManagers getManagers() {
|
||||
return managers;
|
||||
}
|
||||
RPGRegionsAPI.setAPI(null);
|
||||
DB.close();
|
||||
}
|
||||
|
||||
private void generateLang() {
|
||||
Translations.generateLang(this);
|
||||
}
|
||||
@Override
|
||||
public RPGRegionsManagers getManagers() {
|
||||
return managers;
|
||||
}
|
||||
|
||||
private void createConfig() {
|
||||
saveDefaultConfig(); // Moved to config.yml
|
||||
}
|
||||
private void generateLang() {
|
||||
Translations.generateLang(this);
|
||||
}
|
||||
|
||||
private void registerListeners() {
|
||||
PluginManager pm = Bukkit.getPluginManager();
|
||||
pm.registerEvents(new ServerReloadListener(this), this);
|
||||
pm.registerEvents(new ConnectionListener(this), this);
|
||||
pm.registerEvents(new RegionListener(this), this);
|
||||
pm.registerEvents(new MoveListener(this), this);
|
||||
}
|
||||
private void createConfig() {
|
||||
saveDefaultConfig(); // Moved to config.yml
|
||||
}
|
||||
|
||||
private void registerCommands() {
|
||||
final PaperCommandManager manager = commandManager;
|
||||
manager.enableUnstableAPI("help");
|
||||
manager.getCommandCompletions().registerAsyncCompletion("regions", context -> ImmutableList.copyOf(getManagers().getRegionsCache().getConfiguredRegions().keySet()));
|
||||
manager.getCommandCompletions().registerAsyncCompletion("integration-regions", context -> ImmutableList.copyOf(this.getManagers().getIntegrationManager().getAllRegionNames(context.getPlayer().getWorld())));
|
||||
manager.getCommandCompletions().registerAsyncCompletion("async", context -> ImmutableList.of("--async"));
|
||||
manager.getCommandCompletions().registerAsyncCompletion("region-types", context -> ImmutableList.of("Cuboid", "Poly"));
|
||||
manager.getCommandCompletions().registerAsyncCompletion("offline-players", context -> {
|
||||
List<String> players = new ArrayList<>();
|
||||
if (!getConfig().getBoolean("settings.server.tabcomplete.search-offline-players")) {
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
players.add(player.getName());
|
||||
}
|
||||
return ImmutableList.copyOf(players);
|
||||
}
|
||||
private void registerListeners() {
|
||||
PluginManager pm = Bukkit.getPluginManager();
|
||||
pm.registerEvents(new ServerReloadListener(this), this);
|
||||
pm.registerEvents(new ConnectionListener(this), this);
|
||||
pm.registerEvents(new RegionListener(this), this);
|
||||
pm.registerEvents(new MoveListener(this), this);
|
||||
}
|
||||
|
||||
for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
|
||||
players.add(offlinePlayer.getName());
|
||||
}
|
||||
return ImmutableList.copyOf(players);
|
||||
});
|
||||
manager.getCommandCompletions().registerAsyncCompletion("schematics", context -> {
|
||||
File schematicFolder = new File("plugins/WorldEdit/schematics/");
|
||||
List<String> files = new ArrayList<>();
|
||||
for (File file : schematicFolder.listFiles()) {
|
||||
files.add(file.getName());
|
||||
}
|
||||
return files;
|
||||
});
|
||||
manager.getCommandContexts().registerContext(ConfiguredRegion.class, context -> {
|
||||
String id = context.popFirstArg();
|
||||
for (ConfiguredRegion region : managers.getRegionsCache().getConfiguredRegions().values()) {
|
||||
if (region.getId().equals(id)) {
|
||||
return region;
|
||||
}
|
||||
}
|
||||
throw new InvalidCommandArgument("Could not find a region with that id.");
|
||||
});
|
||||
manager.registerCommand(new RPGRegionsCommand(this));
|
||||
manager.registerCommand(new DiscoveriesCommand(this));
|
||||
manager.registerCommand(new RPGRegionsDebugCommand(this));
|
||||
}
|
||||
private void registerCommands() {
|
||||
final PaperCommandManager manager = commandManager;
|
||||
manager.enableUnstableAPI("help");
|
||||
manager.getCommandCompletions().registerAsyncCompletion("regions", context -> ImmutableList.copyOf(getManagers().getRegionsCache().getConfiguredRegions().keySet()));
|
||||
manager.getCommandCompletions().registerAsyncCompletion("integration-regions", context -> ImmutableList.copyOf(this.getManagers().getIntegrationManager().getAllRegionNames(context.getPlayer().getWorld())));
|
||||
manager.getCommandCompletions().registerAsyncCompletion("async", context -> ImmutableList.of("--async"));
|
||||
manager.getCommandCompletions().registerAsyncCompletion("region-types", context -> ImmutableList.of("Cuboid", "Poly"));
|
||||
manager.getCommandCompletions().registerAsyncCompletion("offline-players", context -> {
|
||||
List<String> players = new ArrayList<>();
|
||||
if (!getConfig().getBoolean("settings.server.tabcomplete.search-offline-players")) {
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
players.add(player.getName());
|
||||
}
|
||||
return ImmutableList.copyOf(players);
|
||||
}
|
||||
|
||||
private void registerRewards() {
|
||||
RPGRegionsRegistry<DiscoveryReward> registry = (RegionRewardRegistry) managers.getRegistry(RegionRewardRegistry.class);
|
||||
if (registry == null) {
|
||||
getLogger().warning("Unable to register rewards");
|
||||
return;
|
||||
}
|
||||
registry.register(ConsoleCommandReward.class);
|
||||
registry.register(ExperienceReward.class);
|
||||
registry.register(ItemReward.class);
|
||||
registry.register(MessageReward.class);
|
||||
registry.register(MoneyReward.class);
|
||||
registry.register(PlayerCommandReward.class);
|
||||
registry.register(AlonsoLevelReward.class);
|
||||
registry.register(QuestReward.class);
|
||||
registry.register(TeleportReward.class);
|
||||
registry.register(RegionDiscoverReward.class);
|
||||
}
|
||||
for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
|
||||
players.add(offlinePlayer.getName());
|
||||
}
|
||||
return ImmutableList.copyOf(players);
|
||||
});
|
||||
manager.getCommandCompletions().registerAsyncCompletion("schematics", context -> {
|
||||
File schematicFolder = new File("plugins/WorldEdit/schematics/");
|
||||
List<String> files = new ArrayList<>();
|
||||
for (File file : schematicFolder.listFiles()) {
|
||||
files.add(file.getName());
|
||||
}
|
||||
return files;
|
||||
});
|
||||
manager.getCommandContexts().registerContext(ConfiguredRegion.class, context -> {
|
||||
String id = context.popFirstArg();
|
||||
for (ConfiguredRegion region : managers.getRegionsCache().getConfiguredRegions().values()) {
|
||||
if (region.getId().equals(id)) {
|
||||
return region;
|
||||
}
|
||||
}
|
||||
throw new InvalidCommandArgument("Could not find a region with that id.");
|
||||
});
|
||||
manager.registerCommand(new RPGRegionsCommand(this));
|
||||
manager.registerCommand(new DiscoveriesCommand(this));
|
||||
manager.registerCommand(new RPGRegionsDebugCommand(this));
|
||||
}
|
||||
|
||||
private void registerRequirements() {
|
||||
RPGRegionsRegistry<RegionRequirement> registry = (RegionRequirementRegistry) managers.getRegistry(RegionRequirementRegistry.class);
|
||||
if (registry == null) {
|
||||
getLogger().warning("Unable to register requirements");
|
||||
return;
|
||||
}
|
||||
private void registerRewards() {
|
||||
RPGRegionsRegistry<DiscoveryReward> registry = (RegionRewardRegistry) managers.getRegistry(RegionRewardRegistry.class);
|
||||
if (registry == null) {
|
||||
getLogger().warning("Unable to register rewards");
|
||||
return;
|
||||
}
|
||||
registry.register(ConsoleCommandReward.class);
|
||||
registry.register(ExperienceReward.class);
|
||||
registry.register(ItemReward.class);
|
||||
registry.register(MessageReward.class);
|
||||
registry.register(MoneyReward.class);
|
||||
registry.register(PlayerCommandReward.class);
|
||||
registry.register(AlonsoLevelReward.class);
|
||||
registry.register(QuestReward.class);
|
||||
registry.register(TeleportReward.class);
|
||||
registry.register(RegionDiscoverReward.class);
|
||||
registry.register(PlaceholderConsoleCommandReward.class);
|
||||
}
|
||||
|
||||
registry.register(AlonsoLevelRequirement.class);
|
||||
registry.register(ItemRequirement.class);
|
||||
registry.register(LevelRequirement.class);
|
||||
registry.register(MoneyRequirement.class);
|
||||
registry.register(PlaceholderRequirement.class);
|
||||
registry.register(DependencyRequirement.class);
|
||||
registry.register(QuestRequirement.class);
|
||||
registry.register(PermissionRequirement.class);
|
||||
}
|
||||
private void registerRequirements() {
|
||||
RPGRegionsRegistry<RegionRequirement> registry = (RegionRequirementRegistry) managers.getRegistry(RegionRequirementRegistry.class);
|
||||
if (registry == null) {
|
||||
getLogger().warning("Unable to register requirements");
|
||||
return;
|
||||
}
|
||||
|
||||
private void registerEffects() {
|
||||
RPGRegionsRegistry<RegionEffect> registry = (RegionEffectRegistry) managers.getRegistry(RegionEffectRegistry.class);
|
||||
if (registry == null) {
|
||||
getLogger().warning("Unable to register effects");
|
||||
return;
|
||||
}
|
||||
registry.register(PotionRegionEffect.class);
|
||||
registry.register(FogEffect.class);
|
||||
registry.register(VanishEffect.class);
|
||||
}
|
||||
registry.register(AlonsoLevelRequirement.class);
|
||||
registry.register(ItemRequirement.class);
|
||||
registry.register(LevelRequirement.class);
|
||||
registry.register(MoneyRequirement.class);
|
||||
registry.register(PlaceholderRequirement.class);
|
||||
registry.register(DependencyRequirement.class);
|
||||
registry.register(QuestRequirement.class);
|
||||
registry.register(PermissionRequirement.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Gson getGson() {
|
||||
return new GsonBuilder()
|
||||
.registerTypeAdapter(DiscoveryReward.class, new AbstractAdapter<DiscoveryReward>(null))
|
||||
.registerTypeAdapter(RegionEffect.class, new AbstractAdapter<RegionEffect>(null))
|
||||
.registerTypeAdapter(RegionRequirement.class, new AbstractAdapter<RegionRequirement>(null))
|
||||
.registerTypeAdapter(RPGRegionsRegion.class, new AbstractAdapter<RPGRegionsRegion>(null))
|
||||
.registerTypeHierarchyAdapter(PotionEffect.class, new PotionEffectAdapter(this))
|
||||
.registerTypeHierarchyAdapter(ItemStack.class, new ItemStackAdapter())
|
||||
.registerTypeHierarchyAdapter(Location.class, new LocationAdapter())
|
||||
.setPrettyPrinting()
|
||||
.serializeNulls().create();
|
||||
}
|
||||
private void registerEffects() {
|
||||
RPGRegionsRegistry<RegionEffect> registry = (RegionEffectRegistry) managers.getRegistry(RegionEffectRegistry.class);
|
||||
if (registry == null) {
|
||||
getLogger().warning("Unable to register effects");
|
||||
return;
|
||||
}
|
||||
registry.register(PotionRegionEffect.class);
|
||||
registry.register(FogEffect.class);
|
||||
registry.register(VanishEffect.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasHeadDatabase() {
|
||||
return Bukkit.getPluginManager().getPlugin("HeadDatabase") != null;
|
||||
}
|
||||
@Override
|
||||
public Gson getGson() {
|
||||
return new GsonBuilder()
|
||||
.registerTypeAdapter(DiscoveryReward.class, new AbstractAdapter<DiscoveryReward>(null))
|
||||
.registerTypeAdapter(RegionEffect.class, new AbstractAdapter<RegionEffect>(null))
|
||||
.registerTypeAdapter(RegionRequirement.class, new AbstractAdapter<RegionRequirement>(null))
|
||||
.registerTypeAdapter(RPGRegionsRegion.class, new AbstractAdapter<RPGRegionsRegion>(null))
|
||||
.registerTypeHierarchyAdapter(PotionEffect.class, new PotionEffectAdapter(this))
|
||||
.registerTypeHierarchyAdapter(ItemStack.class, new ItemStackAdapter())
|
||||
.registerTypeHierarchyAdapter(Location.class, new LocationAdapter())
|
||||
.setPrettyPrinting()
|
||||
.serializeNulls().create();
|
||||
}
|
||||
|
||||
private void registerTasks() {
|
||||
if (Bukkit.getPluginManager().getPlugin("Dynmap") != null
|
||||
&& getConfig().getBoolean("settings.external.dynmap")) {
|
||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new DynmapTask(this), 0L, 20L);
|
||||
getLogger().info("Registered support for Dynmap.");
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean hasHeadDatabase() {
|
||||
return Bukkit.getPluginManager().getPlugin("HeadDatabase") != null;
|
||||
}
|
||||
|
||||
private void registerMetrics() {
|
||||
Metrics metrics = new Metrics(this, 2066);
|
||||
// regions_discovered chart currently causes lag due to bStats not running it async :(
|
||||
if (getConfig().getBoolean("settings.metrics.send_custom_info")) {
|
||||
private void registerTasks() {
|
||||
if (Bukkit.getPluginManager().getPlugin("Dynmap") != null
|
||||
&& getConfig().getBoolean("settings.external.dynmap")) {
|
||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new DynmapTask(this), 0L, 20L);
|
||||
getLogger().info("Registered support for Dynmap.");
|
||||
}
|
||||
}
|
||||
|
||||
private void registerMetrics() {
|
||||
Metrics metrics = new Metrics(this, 2066);
|
||||
// regions_discovered chart currently causes lag due to bStats not running it async :(
|
||||
if (getConfig().getBoolean("settings.metrics.send_custom_info")) {
|
||||
/*metrics.addCustomChart(new SingleLineChart("regions_discovered", () -> {
|
||||
debug("Submitting custom metrics on thread: " + Thread.currentThread().getName());
|
||||
int discoveries = 0;
|
||||
@@ -302,23 +304,23 @@ public final class RPGRegions extends JavaPlugin implements IRPGRegionsAPI {
|
||||
}
|
||||
return discoveries;
|
||||
}));*/
|
||||
}
|
||||
metrics.addCustomChart(new SingleLineChart("regions_configured", () -> getManagers().getRegionsCache().getConfiguredRegions().size()));
|
||||
metrics.addCustomChart(new SimplePie("storage_mode", () -> getConfig().getString("settings.storage.mode")));
|
||||
metrics.addCustomChart(new SimplePie("integration_type", () -> getConfig().getString("settings.integration.name")));
|
||||
}
|
||||
}
|
||||
metrics.addCustomChart(new SingleLineChart("regions_configured", () -> getManagers().getRegionsCache().getConfiguredRegions().size()));
|
||||
metrics.addCustomChart(new SimplePie("storage_mode", () -> getConfig().getString("settings.storage.mode")));
|
||||
metrics.addCustomChart(new SimplePie("integration_type", () -> getConfig().getString("settings.integration.name")));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean debug() {
|
||||
return this.getConfig().getBoolean("settings.dev.debug");
|
||||
}
|
||||
@Override
|
||||
public boolean debug() {
|
||||
return this.getConfig().getBoolean("settings.dev.debug");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(String debug) {
|
||||
if (debug()) this.debug(debug, Level.INFO);
|
||||
}
|
||||
@Override
|
||||
public void debug(String debug) {
|
||||
if (debug()) this.debug(debug, Level.INFO);
|
||||
}
|
||||
|
||||
public void debug(String debug, Level level) {
|
||||
if (debug()) this.getLogger().log(level, "[Debug] " + debug);
|
||||
}
|
||||
public void debug(String debug, Level level) {
|
||||
if (debug()) this.getLogger().log(level, "[Debug] " + debug);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.google.common.base.Enums;
|
||||
import com.google.common.base.Optional;
|
||||
import net.islandearth.rpgregions.chat.preset.ReturnValueConversationPreset;
|
||||
import net.islandearth.rpgregions.gui.IGuiEditable;
|
||||
import net.islandearth.rpgregions.requirements.PlaceholderRequirement;
|
||||
import net.islandearth.rpgregions.utils.PlaceholderCompareType;
|
||||
import org.apache.commons.lang.reflect.FieldUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -20,17 +20,17 @@ public class CompareTypeGuiFieldElement implements IGuiFieldElement {
|
||||
public CompletableFuture<Void> set(Player player, IGuiEditable guiEditable, Field field, Object value) {
|
||||
CompletableFuture<Void> completableFuture = new CompletableFuture<>();
|
||||
new ReturnValueConversationPreset(player, "Enter the compare type, valid compares are: "
|
||||
+ Arrays.toString(PlaceholderRequirement.CompareType.values()) + ".", input -> {
|
||||
Optional<PlaceholderRequirement.CompareType> compareType = Enums.getIfPresent(PlaceholderRequirement.CompareType.class,input.toUpperCase());
|
||||
+ Arrays.toString(PlaceholderCompareType.values()) + ".", input -> {
|
||||
Optional<PlaceholderCompareType> compareType = Enums.getIfPresent(PlaceholderCompareType.class,input.toUpperCase());
|
||||
if (compareType.isPresent()) {
|
||||
try {
|
||||
FieldUtils.writeField(field, guiEditable, PlaceholderRequirement.CompareType.valueOf(input.toUpperCase()));
|
||||
FieldUtils.writeField(field, guiEditable, PlaceholderCompareType.valueOf(input.toUpperCase()));
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
player.sendMessage(ChatColor.RED + "Could not find a compare type with that name. "
|
||||
+ Arrays.toString(PlaceholderRequirement.CompareType.values()));
|
||||
+ Arrays.toString(PlaceholderCompareType.values()));
|
||||
}
|
||||
completableFuture.complete(null);
|
||||
});
|
||||
@@ -39,7 +39,7 @@ public class CompareTypeGuiFieldElement implements IGuiFieldElement {
|
||||
|
||||
@Override
|
||||
public List<Class<?>> getType() {
|
||||
return Arrays.asList(PlaceholderRequirement.CompareType.class);
|
||||
return Arrays.asList(PlaceholderCompareType.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.islandearth.rpgregions.rewards;
|
||||
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
import net.islandearth.rpgregions.api.IRPGRegionsAPI;
|
||||
import net.islandearth.rpgregions.gui.GuiEditable;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -23,7 +24,11 @@ public class ConsoleCommandReward extends DiscoveryReward {
|
||||
|
||||
@Override
|
||||
public void award(Player player) {
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), command.replace("%player%", player.getName()));
|
||||
String command = this.command.replace("%player%", player.getName());
|
||||
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
|
||||
command = PlaceholderAPI.setPlaceholders(player, command);
|
||||
}
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), command);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package net.islandearth.rpgregions.rewards;
|
||||
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
import net.islandearth.rpgregions.api.IRPGRegionsAPI;
|
||||
import net.islandearth.rpgregions.gui.GuiEditable;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -22,7 +24,11 @@ public class PlayerCommandReward extends DiscoveryReward {
|
||||
|
||||
@Override
|
||||
public void award(Player player) {
|
||||
player.performCommand(command.replace("%player%", player.getName()));
|
||||
String command = this.command.replace("%player%", player.getName());
|
||||
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
|
||||
command = PlaceholderAPI.setPlaceholders(player, command);
|
||||
}
|
||||
player.performCommand(command);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user