9
0
mirror of https://gitlab.com/SamB440/rpgregions-2.git synced 2025-12-28 11:19:24 +00:00

Reload config on reload command, add inner pane, fix pages error, add mask config

This commit is contained in:
SamB440
2020-02-16 21:05:22 +00:00
parent f0cec7e2f4
commit 123950c141
3 changed files with 54 additions and 8 deletions

View File

@@ -31,6 +31,7 @@ import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import java.io.IOException;
import java.util.Arrays;
public final class RPGRegions extends JavaPlugin implements RPGRegionsAPI, LanguagyPluginHook {
@@ -86,6 +87,7 @@ public final class RPGRegions extends JavaPlugin implements RPGRegionsAPI, Langu
}
private void createConfig() {
// TODO move this logic to another class - it's getting too long!
FileConfiguration config = this.getConfig();
String header;
String eol = System.getProperty("line.separator");
@@ -127,17 +129,35 @@ public final class RPGRegions extends JavaPlugin implements RPGRegionsAPI, Langu
config.addDefault("settings.server.gui.exit.show", true);
config.addDefault("settings.server.gui.pane.posX", 1);
config.addDefault("settings.server.gui.pane.posY", 1);
config.addDefault("settings.server.gui.pane.length", 9);
config.addDefault("settings.server.gui.pane.height", 5);
config.addDefault("settings.server.gui.pane.length", 7);
config.addDefault("settings.server.gui.pane.height", 4);
config.addDefault("settings.server.gui.outlinePane.posX", 0);
config.addDefault("settings.server.gui.outlinePane.posY", 0);
config.addDefault("settings.server.gui.outlinePane.length", 9);
config.addDefault("settings.server.gui.outlinePane.height", 5);
config.addDefault("settings.server.gui.outlinePane.height", 6);
config.addDefault("settings.server.gui.outlinePane.show", true);
config.addDefault("settings.server.gui.outlinePane.mask", Arrays.asList(
"111111111",
"100000001",
"100000001",
"100000001",
"100000001",
"111111111"));
config.addDefault("settings.server.gui.innerPane.posX", 1);
config.addDefault("settings.server.gui.innerPane.posY", 1);
config.addDefault("settings.server.gui.innerPane.length", 7);
config.addDefault("settings.server.gui.innerPane.height", 4);
config.addDefault("settings.server.gui.innerPane.show", true);
config.addDefault("settings.server.gui.innerPane.mask", Arrays.asList(
"1111111",
"1111111",
"1111111",
"1111111"));
config.addDefault("settings.server.gui.forward.forward", XMaterial.ARROW.parseMaterial().toString());
config.addDefault("settings.server.gui.back.back", XMaterial.ARROW.parseMaterial().toString());
config.addDefault("settings.server.gui.exit.exit", XMaterial.BARRIER.parseMaterial().toString());
config.addDefault("settings.server.gui.outlinePane.outlinePane", XMaterial.GRAY_STAINED_GLASS_PANE.parseMaterial().toString());
config.addDefault("settings.server.gui.innerPane.innerPane", XMaterial.WHITE_STAINED_GLASS_PANE.parseMaterial().toString());
config.options().copyDefaults(true);
saveConfig();
}

View File

@@ -157,6 +157,7 @@ public class RPGRegionsCommand extends BaseCommand {
}
}
plugin.reloadConfig();
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
sender.sendMessage(ChatColor.GREEN + "Done! (" + totalTime + "ms)");

View File

@@ -5,6 +5,7 @@ import com.github.stefvanschie.inventoryframework.GuiItem;
import com.github.stefvanschie.inventoryframework.pane.OutlinePane;
import com.github.stefvanschie.inventoryframework.pane.PaginatedPane;
import com.github.stefvanschie.inventoryframework.pane.StaticPane;
import com.github.stefvanschie.inventoryframework.pane.util.Mask;
import io.papermc.lib.PaperLib;
import net.islandearth.rpgregions.RPGRegions;
import net.islandearth.rpgregions.managers.data.region.ConfiguredRegion;
@@ -26,6 +27,7 @@ public class DiscoveryGUI extends RPGRegionsGUI {
public DiscoveryGUI(RPGRegions plugin, Player player) {
super(plugin, player);
this.gui = new Gui(plugin, 6, Translations.REGIONS.get(player));
// I wish there was a cleaner way to do this :(
int backX = plugin.getConfig().getInt("settings.server.gui.back.posX");
int backY = plugin.getConfig().getInt("settings.server.gui.back.posY");
int backL = plugin.getConfig().getInt("settings.server.gui.back.length");
@@ -46,15 +48,40 @@ public class DiscoveryGUI extends RPGRegionsGUI {
int oPaneY = plugin.getConfig().getInt("settings.server.gui.outlinePane.posY");
int oPaneL = plugin.getConfig().getInt("settings.server.gui.outlinePane.length");
int oPaneH = plugin.getConfig().getInt("settings.server.gui.outlinePane.height");
int iPaneX = plugin.getConfig().getInt("settings.server.gui.innerPane.posX");
int iPaneY = plugin.getConfig().getInt("settings.server.gui.innerPane.posY");
int iPaneL = plugin.getConfig().getInt("settings.server.gui.innerPane.length");
int iPaneH = plugin.getConfig().getInt("settings.server.gui.innerPane.height");
PaginatedPane pane = new PaginatedPane(paneX, paneY, paneL, paneH);
OutlinePane oPane = new OutlinePane(oPaneX, oPaneY, oPaneL, oPaneH);
OutlinePane innerPane = new OutlinePane(iPaneX, iPaneY, iPaneL, iPaneH);
StaticPane back = new StaticPane(backX, backY, backL, backH);
StaticPane forward = new StaticPane(forwardX, forwardY, forwardL, forwardH);
StaticPane exit = new StaticPane(exitX, exitY, exitL, exitH);
// Inner pane
if (plugin.getConfig().getBoolean("settings.server.gui.innerPane.show")) {
innerPane.setRepeat(true);
List<String> mask = plugin.getConfig().getStringList("settings.server.gui.innerPane.mask");
innerPane.applyMask(new Mask(mask.toArray(new String[]{})));
innerPane.setOnClick(inventoryClickEvent -> {
inventoryClickEvent.setCancelled(true);
});
innerPane.addItem(new GuiItem(new ItemStackBuilder(XMaterial.valueOf(
plugin.getConfig().getString("settings.server.gui.innerPane.innerPane")).parseMaterial())
.withName(" ")
.addFlags(ItemFlag.HIDE_ATTRIBUTES)
.build()));
gui.addPane(innerPane);
}
// Outline pane
if (plugin.getConfig().getBoolean("settings.server.gui.outlinePane.show")) {
oPane.setRepeat(true);
List<String> mask = plugin.getConfig().getStringList("settings.server.gui.outlinePane.mask");
oPane.applyMask(new Mask(mask.toArray(new String[]{})));
oPane.setOnClick(inventoryClickEvent -> {
inventoryClickEvent.setCancelled(true);
});
@@ -75,7 +102,7 @@ public class DiscoveryGUI extends RPGRegionsGUI {
.addFlags(ItemFlag.HIDE_ATTRIBUTES)
.build(), event -> {
event.setCancelled(true);
if (pane.getPages() == 0) return;
if (pane.getPages() == 0 || pane.getPages() == 1) return;
pane.setPage(pane.getPage() - 1);
@@ -90,7 +117,7 @@ public class DiscoveryGUI extends RPGRegionsGUI {
.addFlags(ItemFlag.HIDE_ATTRIBUTES)
.build(), event -> {
event.setCancelled(true);
if (pane.getPages() == 0) return;
if (pane.getPages() == 0 || pane.getPages() == 1) return;
pane.setPage(pane.getPage() + 1);
@@ -167,9 +194,7 @@ public class DiscoveryGUI extends RPGRegionsGUI {
event.setCancelled(true);
}));
}
pane.populateWithGuiItems(items);
gui.addPane(pane);
});