Merge remote-tracking branch 'origin/master'
Dieser Commit ist enthalten in:
Commit
f03747ef5d
@ -2,6 +2,7 @@ package de.steamwar.bausystem.configplayer;
|
||||
|
||||
import de.steamwar.bausystem.linkage.LinkageType;
|
||||
import de.steamwar.bausystem.linkage.Linked;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -17,7 +18,14 @@ import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
|
||||
@Linked(LinkageType.LISTENER)
|
||||
public class ConfigUpdater implements Listener {
|
||||
public class Config implements Listener {
|
||||
|
||||
@Getter
|
||||
private static Config instance;
|
||||
|
||||
{
|
||||
instance = this;
|
||||
}
|
||||
|
||||
private final Map<UUID, YAPIONObject> playerConfigurations = new HashMap<>();
|
||||
|
@ -12,9 +12,49 @@ public class ConfigCreator {
|
||||
YAPIONObject yapionObject = new YAPIONObject();
|
||||
// This call should never be touched
|
||||
yapionObject.add("@version", currentVersion);
|
||||
yapionObject.add("baugui", defaultBauGui());
|
||||
|
||||
// Any initialising goes into here
|
||||
return yapionObject;
|
||||
}
|
||||
|
||||
private YAPIONObject defaultBauGui() {
|
||||
YAPIONObject yapionObject = new YAPIONObject();
|
||||
|
||||
// 0: ? | 1: ? | 2: 10 | 3: 3 | 4: 7 | 5: 17 | 6: 15 | 7: ? | 8: ?
|
||||
// 9: 5 | 10: ? | 11: ? | 12: ? | 13: ? | 14: ? | 15: ? | 16: ? | 17: 16
|
||||
// 18: 4 | 19: ? | 20: 19 | 21: 21 | 22: 9 | 23: 0 | 24: 1 | 25: ? | 26: 11
|
||||
// 27: 6 | 28: ? | 29: ? | 30: ? | 31: ? | 32: ? | 33: ? | 34: ? | 35: 18
|
||||
// 36: ? | 37: 23 | 38: 20 | 39: 8 | 40: 22 | 41: 26 | 42: 12 | 43: 14 | 44: ?
|
||||
|
||||
yapionObject.add("2", 10);
|
||||
yapionObject.add("3", 3);
|
||||
yapionObject.add("4", 7);
|
||||
yapionObject.add("5", 17);
|
||||
yapionObject.add("6", 15);
|
||||
|
||||
yapionObject.add("9", 5);
|
||||
yapionObject.add("18", 4);
|
||||
yapionObject.add("27", 6);
|
||||
|
||||
yapionObject.add("17", 16);
|
||||
yapionObject.add("26", 11);
|
||||
yapionObject.add("35", 18);
|
||||
|
||||
yapionObject.add("20", 19);
|
||||
yapionObject.add("21", 21);
|
||||
yapionObject.add("22", 9);
|
||||
yapionObject.add("23", 0);
|
||||
yapionObject.add("24", 1);
|
||||
|
||||
yapionObject.add("37", 23);
|
||||
yapionObject.add("38", 20);
|
||||
yapionObject.add("39", 8);
|
||||
yapionObject.add("40", 22);
|
||||
yapionObject.add("41", 26);
|
||||
yapionObject.add("42", 12);
|
||||
yapionObject.add("43", 14);
|
||||
return yapionObject;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -20,10 +20,12 @@
|
||||
package de.steamwar.bausystem.features.gui.editor;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.configplayer.Config;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
import yapion.hierarchy.types.YAPIONObject;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@ -50,7 +52,9 @@ public class BauGuiMapping {
|
||||
BauGuiMapping mapping = fromUUID.get(p.getUniqueId());
|
||||
|
||||
if (mapping == null) {
|
||||
mapping = TempClass.DEFAULT_GUI.apply(p.getUniqueId());
|
||||
YAPIONObject yapionObject = Config.getInstance().get(p);
|
||||
// TODO: Implement loading
|
||||
// mapping = TempClass.DEFAULT_GUI.apply(p.getUniqueId());
|
||||
}
|
||||
|
||||
return mapping;
|
||||
|
@ -1,56 +0,0 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2021 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.features.gui.editor;
|
||||
|
||||
import de.steamwar.bausystem.features.gui.BauGUI;
|
||||
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Function;
|
||||
|
||||
// TODO: 01.05.2021 remove class
|
||||
public class TempClass {
|
||||
|
||||
public static final Function<UUID, BauGuiMapping> DEFAULT_GUI;
|
||||
|
||||
static {
|
||||
DEFAULT_GUI = player -> {
|
||||
Random rnd = new Random();
|
||||
int size = (rnd.nextInt(5) + 1) * 9;
|
||||
HashMap<Integer, Integer> mapping = new HashMap<>();
|
||||
for (BauGuiItem item : BauGUI.getITEMS().values()) {
|
||||
int slot;
|
||||
int i = 0;
|
||||
do {
|
||||
if (i > 5) {
|
||||
slot = -1;
|
||||
break;
|
||||
}
|
||||
slot = rnd.nextInt(size + 1) - 1;
|
||||
i++;
|
||||
} while (mapping.containsValue(slot));
|
||||
mapping.put(item.getId(), slot);
|
||||
}
|
||||
return new BauGuiMapping(player, size, mapping);
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2021 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.features.util.items;
|
||||
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.linkage.LinkageType;
|
||||
import de.steamwar.bausystem.linkage.Linked;
|
||||
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
|
||||
import de.steamwar.inventory.SWItem;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@Linked(LinkageType.BAU_GUI_ITEM)
|
||||
public class NavWandBauGuiItem extends BauGuiItem {
|
||||
|
||||
public NavWandBauGuiItem() {
|
||||
super(27);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Permission permission() {
|
||||
return Permission.WORLDEDIT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getItem(Player player) {
|
||||
return new SWItem(Material.WOODEN_AXE, "Navigation Wand", Arrays.asList("Left click: jump to location", "Right click: pass through walls"), false, clickType -> {
|
||||
}).getItemStack();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean click(ClickType click, Player p) {
|
||||
p.performCommand("/wand -n");
|
||||
return false;
|
||||
}
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2021 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.features.util.items;
|
||||
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.linkage.LinkageType;
|
||||
import de.steamwar.bausystem.linkage.Linked;
|
||||
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
|
||||
import de.steamwar.inventory.SWItem;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@Linked(LinkageType.BAU_GUI_ITEM)
|
||||
public class WorldEditBauGuiItem extends BauGuiItem {
|
||||
|
||||
public WorldEditBauGuiItem() {
|
||||
super(26);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Permission permission() {
|
||||
return Permission.WORLDEDIT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getItem(Player player) {
|
||||
return new SWItem(Material.WOODEN_AXE, "WorldEdit Wand", Arrays.asList("Left click: select pos #1", "Right click: select pos #2"), false, clickType -> {
|
||||
}).getItemStack();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean click(ClickType click, Player p) {
|
||||
p.performCommand("/wand");
|
||||
return false;
|
||||
}
|
||||
}
|
@ -21,7 +21,7 @@ package de.steamwar.bausystem.linkage;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.configplayer.ConfigConverter;
|
||||
import de.steamwar.bausystem.configplayer.ConfigUpdater;
|
||||
import de.steamwar.bausystem.configplayer.Config;
|
||||
import de.steamwar.bausystem.features.gui.BauGUI;
|
||||
import de.steamwar.bausystem.features.script.ScriptExecutor;
|
||||
import de.steamwar.bausystem.features.script.SpecialCommand;
|
||||
@ -54,7 +54,7 @@ public enum LinkageType {
|
||||
// SPECIFIC
|
||||
BAU_GUI_ITEM(3, false, BauGuiItem.class::isAssignableFrom, o -> BauGUI.addItem((BauGuiItem) o)),
|
||||
SCRIPT_COMMAND(4, false, SpecialCommand.class::isAssignableFrom, o -> ScriptExecutor.SPECIAL_COMMANDS.add((SpecialCommand) o)),
|
||||
CONFIG_CONVERTER(5, false, ConfigConverter.class::isAssignableFrom, o -> ConfigUpdater.addConfigConverter((ConfigConverter) o)),
|
||||
CONFIG_CONVERTER(5, false, ConfigConverter.class::isAssignableFrom, o -> Config.addConfigConverter((ConfigConverter) o)),
|
||||
SCOREBOARD(6, false, ScoreboardItem.class::isAssignableFrom, o -> {});
|
||||
|
||||
private final int order;
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren