forked from SteamWar/SteamWar
Format code
This commit is contained in:
+51
-44
@@ -40,7 +40,8 @@ import java.util.stream.Collectors;
|
||||
import static de.steamwar.schematicsystem.commands.schematiccommand.SchematicCommandUtils.getUser;
|
||||
|
||||
public class GUI {
|
||||
private GUI() {}
|
||||
private GUI() {
|
||||
}
|
||||
|
||||
public static void list(Player player) {
|
||||
SchematicSelector selector = new SchematicSelector(player, SchematicSelector.selectSchematic(), new SchematicSelectorInjectable() {
|
||||
@@ -52,14 +53,15 @@ public class GUI {
|
||||
@Override
|
||||
public void onListRender(SchematicSelector selector, SWListInv<SchematicNode> inv, SchematicNode parent) {
|
||||
inv.setCallback(-999, (ClickType click) -> {
|
||||
if(parent == null) {
|
||||
if (parent == null) {
|
||||
player.closeInventory();
|
||||
} else {
|
||||
selector.reOpenDirUp();
|
||||
}
|
||||
});
|
||||
if(parent == null) {
|
||||
inv.setItem(49, Material.AIR, "", clickType -> {});
|
||||
if (parent == null) {
|
||||
inv.setItem(49, Material.AIR, "", clickType -> {
|
||||
});
|
||||
} else {
|
||||
inv.setItem(49, Material.ANVIL, SchematicSystem.MESSAGE.parse("GUI_FOLDER_PROPERTIES", player), clickType -> {
|
||||
info(selector.getPlayer(), parent, selector);
|
||||
@@ -71,7 +73,8 @@ public class GUI {
|
||||
public AnvilInvCloseAction onAnvilInvCloseAction(SchematicSelector selector) {
|
||||
return AnvilInvCloseAction.REOPEN;
|
||||
}
|
||||
}, node -> {});
|
||||
}, node -> {
|
||||
});
|
||||
selector.setCallback(node -> info(player, node, selector));
|
||||
selector.setSingleDirOpen(false);
|
||||
selector.open();
|
||||
@@ -80,7 +83,7 @@ public class GUI {
|
||||
private static void setCloseLeftCallback(SWAnvilInv inv, Runnable action) {
|
||||
AtomicBoolean left = new AtomicBoolean(false);
|
||||
inv.addCloseCallback(() -> {
|
||||
if(!left.get()) {
|
||||
if (!left.get()) {
|
||||
Bukkit.getScheduler().runTaskLater(SchematicSystem.getInstance(), action, 1);
|
||||
}
|
||||
});
|
||||
@@ -93,7 +96,7 @@ public class GUI {
|
||||
private static void info(Player player, SchematicNode node, SchematicSelector back) {
|
||||
SteamwarUser user = getUser(player);
|
||||
SWInventory inv = new SWInventory(player, 9 * 2, node.generateBreadcrumbs(user));
|
||||
if(!node.isDir()) {
|
||||
if (!node.isDir()) {
|
||||
inv.setItem(0, Material.WOODEN_AXE, SchematicSystem.MESSAGE.parse("GUI_INFO_LOAD", player), Arrays.asList(
|
||||
SchematicSystem.MESSAGE.parse("GUI_LOAD_LATEST", player),
|
||||
SchematicSystem.MESSAGE.parse("GUI_LOAD_REVISION", player)
|
||||
@@ -109,7 +112,7 @@ public class GUI {
|
||||
}
|
||||
|
||||
SWListInv<Integer> listInv = new SWListInv<>(player, SchematicSystem.MESSAGE.parse("GUI_LOAD_REVISION_TITLE", player, node.generateBreadcrumbs(user)), entries, (clickType, revision) -> {
|
||||
if(revision == null) return;
|
||||
if (revision == null) return;
|
||||
player.closeInventory();
|
||||
SchematicCommandUtils.loadSchem(player, node, revision);
|
||||
});
|
||||
@@ -123,22 +126,23 @@ public class GUI {
|
||||
back.reOpen();
|
||||
}).setCustomModelData(CMDs.Schematic.BACK));
|
||||
|
||||
if(node.getOwner() == user.getId()){
|
||||
if(!node.isDir() && node.getSchemtype().writeable()){
|
||||
if (node.getOwner() == user.getId()) {
|
||||
if (!node.isDir() && node.getSchemtype().writeable()) {
|
||||
CheckedSchematic.getLastDeclinedOfNode(node.getId()).stream().findFirst().ifPresent(checkedSchematic ->
|
||||
inv.setItem(1, Material.LIME_DYE, (byte) 10, SchematicSystem.MESSAGE.parse("GUI_INFO_STATUS", player, node.getSchemtype().name()), Collections.singletonList(SchematicSystem.MESSAGE.parse("GUI_INFO_STATUS_LORE", player, checkedSchematic.getDeclineReason().replaceAll("&", "§"))), false, click -> {}));
|
||||
inv.setItem(1, Material.LIME_DYE, (byte) 10, SchematicSystem.MESSAGE.parse("GUI_INFO_STATUS", player, node.getSchemtype().name()), Collections.singletonList(SchematicSystem.MESSAGE.parse("GUI_INFO_STATUS_LORE", player, checkedSchematic.getDeclineReason().replaceAll("&", "§"))), false, click -> {
|
||||
}));
|
||||
}
|
||||
Material mat = SWItem.getMaterial(node.getItem());
|
||||
|
||||
inv.setItemEvent(node.isDir()?7:5, mat, SchematicSystem.MESSAGE.parse("GUI_INFO_MAT", player, mat.name()), Arrays.asList(SchematicSystem.MESSAGE.parse("CHANGE", player), SchematicSystem.MESSAGE.parse("CLICK_DRAG_ITEM", player)), false, event -> {
|
||||
if(event.getCursor() != null && event.getCursor().getType() != Material.AIR) {
|
||||
inv.setItemEvent(node.isDir() ? 7 : 5, mat, SchematicSystem.MESSAGE.parse("GUI_INFO_MAT", player, mat.name()), Arrays.asList(SchematicSystem.MESSAGE.parse("CHANGE", player), SchematicSystem.MESSAGE.parse("CLICK_DRAG_ITEM", player)), false, event -> {
|
||||
if (event.getCursor() != null && event.getCursor().getType() != Material.AIR) {
|
||||
node.setItem(event.getCursor().getType().name());
|
||||
info(player, node, back);
|
||||
} else {
|
||||
changeItem(player, node, back);
|
||||
}
|
||||
});
|
||||
if(!node.isDir()) {
|
||||
if (!node.isDir()) {
|
||||
inv.setItem(6, SWItem.getMaterial(node.getSchemtype().getMaterial()), SchematicSystem.MESSAGE.parse("GUI_INFO_TYPE", player, node.getSchemtype().name()), Arrays.asList(SchematicSystem.MESSAGE.parse("CHANGE", player), SchematicSystem.MESSAGE.parse("CLICK", player)), node.getSchemtype().fightType(), click -> {
|
||||
changeType(player, node);
|
||||
});
|
||||
@@ -146,13 +150,13 @@ public class GUI {
|
||||
player.closeInventory();
|
||||
SchematicCommandUtils.download(player, node);
|
||||
});
|
||||
if(node.getSchemtype().fightType()) {
|
||||
inv.setItem(14, node.replaceColor() ? Material.PINK_WOOL : Material.LIGHT_GRAY_WOOL, SchematicSystem.MESSAGE.parse("GUI_INFO_COLOR", player), Arrays.asList(SchematicSystem.MESSAGE.parse("CURRENT", player, SchematicSystem.MESSAGE.parse(node.replaceColor()?"ON":"OFF", player)), SchematicSystem.MESSAGE.parse("CHANGE", player), SchematicSystem.MESSAGE.parse("CLICK", player)), false, clickType -> {
|
||||
if (node.getSchemtype().fightType()) {
|
||||
inv.setItem(14, node.replaceColor() ? Material.PINK_WOOL : Material.LIGHT_GRAY_WOOL, SchematicSystem.MESSAGE.parse("GUI_INFO_COLOR", player), Arrays.asList(SchematicSystem.MESSAGE.parse("CURRENT", player, SchematicSystem.MESSAGE.parse(node.replaceColor() ? "ON" : "OFF", player)), SchematicSystem.MESSAGE.parse("CHANGE", player), SchematicSystem.MESSAGE.parse("CLICK", player)), false, clickType -> {
|
||||
node.setReplaceColor(!node.replaceColor());
|
||||
info(player, node, back);
|
||||
});
|
||||
inv.setItem(13, node.allowReplay() ? Material.ENDER_EYE : Material.ENDER_PEARL, SchematicSystem.MESSAGE.parse("GUI_INFO_REPLAY", player), Arrays.asList(SchematicSystem.MESSAGE.parse("CURRENT", player, SchematicSystem.MESSAGE.parse(node.allowReplay()?"ON":"OFF", player)), SchematicSystem.MESSAGE.parse("GUI_INFO_REPLAY_OFF", player), SchematicSystem.MESSAGE.parse("CLICK", player)), false, clickType -> {
|
||||
if(node.allowReplay()) {
|
||||
inv.setItem(13, node.allowReplay() ? Material.ENDER_EYE : Material.ENDER_PEARL, SchematicSystem.MESSAGE.parse("GUI_INFO_REPLAY", player), Arrays.asList(SchematicSystem.MESSAGE.parse("CURRENT", player, SchematicSystem.MESSAGE.parse(node.allowReplay() ? "ON" : "OFF", player)), SchematicSystem.MESSAGE.parse("GUI_INFO_REPLAY_OFF", player), SchematicSystem.MESSAGE.parse("CLICK", player)), false, clickType -> {
|
||||
if (node.allowReplay()) {
|
||||
SWInventory confInv = new SWInventory(player, 9, SchematicSystem.MESSAGE.parse("GUI_INFO_REPLAY_TITLE", player));
|
||||
confInv.setItem(0, Material.LIME_DYE, (byte) 10, SchematicSystem.MESSAGE.parse("CONFIRM", player), type -> {
|
||||
node.setAllowReplay(false);
|
||||
@@ -178,7 +182,7 @@ public class GUI {
|
||||
anvilInv.setItem(mat, Collections.singletonList(Core.MESSAGE.parse("SCHEM_SELECTOR_CLICK_BACK", player)), false);
|
||||
anvilInv.setCallback(s -> {
|
||||
SafeSchematicNode.Result result = SafeSchematicNode.setName(user, node, s);
|
||||
if(result.isSuccessful()) {
|
||||
if (result.isSuccessful()) {
|
||||
info(player, SchematicNode.byIdAndUser(user, node.getId()), back);
|
||||
} else {
|
||||
result.sendError(player);
|
||||
@@ -187,38 +191,40 @@ public class GUI {
|
||||
setCloseLeftCallback(anvilInv, () -> info(player, node, back));
|
||||
anvilInv.open();
|
||||
});
|
||||
if(node.getOwner() != 0) {
|
||||
if (node.getOwner() != 0) {
|
||||
inv.setItem(17, Material.RED_DYE, (byte) 1, SchematicSystem.MESSAGE.parse("GUI_INFO_DELETE", player), click -> {
|
||||
delete(player, node, back);
|
||||
});
|
||||
}
|
||||
}else{
|
||||
if(!node.isDir()) {
|
||||
inv.setItem(4, Material.CAULDRON, SchematicSystem.MESSAGE.parse("GUI_INFO_TYPE", player, node.getSchemtype().name()), Collections.emptyList(), node.getSchemtype().fightType(), click -> {});
|
||||
} else {
|
||||
if (!node.isDir()) {
|
||||
inv.setItem(4, Material.CAULDRON, SchematicSystem.MESSAGE.parse("GUI_INFO_TYPE", player, node.getSchemtype().name()), Collections.emptyList(), node.getSchemtype().fightType(), click -> {
|
||||
});
|
||||
}
|
||||
|
||||
SteamwarUser owneruser = SteamwarUser.byId(node.getOwner());
|
||||
SWItem skull = SWItem.getPlayerSkull(owneruser.getUserName());
|
||||
skull.setName(SchematicSystem.MESSAGE.parse("GUI_INFO_MEMBER_FROM", player, owneruser.getUserName()));
|
||||
inv.setItem(8, skull.getItemStack(), clickType -> {});
|
||||
inv.setItem(8, skull.getItemStack(), clickType -> {
|
||||
});
|
||||
|
||||
if(NodeMember.getNodeMember(node.getId(), user.getId()) != null) {
|
||||
if (NodeMember.getNodeMember(node.getId(), user.getId()) != null) {
|
||||
inv.setItem(17, Material.RED_DYE, (byte) 1, SchematicSystem.MESSAGE.parse("GUI_INFO_MEMBER_REMOVE", player), click -> {
|
||||
delete(player, node, back);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if(node.getOwner() == user.getId() || NodeMember.getNodeMember(node.getId(), user.getId()) != null) {
|
||||
if (node.getOwner() == user.getId() || NodeMember.getNodeMember(node.getId(), user.getId()) != null) {
|
||||
inv.setItem(15, Material.ARROW, SchematicSystem.MESSAGE.parse("GUI_INFO_MOVE", player), clickType -> {
|
||||
SchematicSelector selector = new SchematicSelector(player, SchematicSelector.selectDirectory(), npar -> {
|
||||
if(npar != null && SchematicNode.parentsOfNode(user, npar.getId()).stream().anyMatch(n -> n.getId() == node.getId())) {
|
||||
if (npar != null && SchematicNode.parentsOfNode(user, npar.getId()).stream().anyMatch(n -> n.getId() == node.getId())) {
|
||||
SchematicSystem.MESSAGE.send("COMMAND_MOVE_RECURSIVE", player);
|
||||
return;
|
||||
}
|
||||
if(node.getOwner() == user.getId()) {
|
||||
if (node.getOwner() == user.getId()) {
|
||||
SafeSchematicNode.Result result = SafeSchematicNode.setParent(user, node, npar);
|
||||
if(result.isSuccessful()) {
|
||||
if (result.isSuccessful()) {
|
||||
info(player, SchematicNode.getSchematicNode(node.getId()), back);
|
||||
} else {
|
||||
result.sendError(player);
|
||||
@@ -235,11 +241,12 @@ public class GUI {
|
||||
inv.open();
|
||||
}
|
||||
|
||||
static void changeType(Player p, SchematicNode schem){
|
||||
static void changeType(Player p, SchematicNode schem) {
|
||||
Clipboard clipboard = null;
|
||||
try {
|
||||
clipboard = new SchematicData(schem).load();
|
||||
} catch (IOException ignored) { }
|
||||
} catch (IOException ignored) {
|
||||
}
|
||||
|
||||
Clipboard finalClipboard = clipboard;
|
||||
List<SchematicType> types = SchematicType.values().parallelStream()
|
||||
@@ -258,7 +265,7 @@ public class GUI {
|
||||
.collect(Collectors.toList()));
|
||||
|
||||
SWListInv<SchematicType> inv = new SWListInv<>(p, SchematicSystem.MESSAGE.parse("GUI_CHANGE_TYPE", p), items, (clickType, schematicType) -> {
|
||||
if(schematicType == null) return;
|
||||
if (schematicType == null) return;
|
||||
p.closeInventory();
|
||||
SchematicCommandUtils.changeType(p, schem, schematicType, null);
|
||||
});
|
||||
@@ -266,14 +273,14 @@ public class GUI {
|
||||
inv.open();
|
||||
}
|
||||
|
||||
private static void deleteOwn(Player p, SchematicNode schem, SchematicSelector back){
|
||||
private static void deleteOwn(Player p, SchematicNode schem, SchematicSelector back) {
|
||||
SteamwarUser user = getUser(p);
|
||||
SWInventory inv = new SWInventory(p, 9, SchematicSystem.MESSAGE.parse("GUI_DELETE_OWN_TITLE", p, schem.generateBreadcrumbs(user)));
|
||||
inv.setItem(0, Material.RED_DYE, (byte) 1, SchematicSystem.MESSAGE.parse("CONFIRM", p), click -> {
|
||||
p.performCommand("schematic delete " + schem.generateBreadcrumbs(user));
|
||||
|
||||
if(back != null) {
|
||||
if(schem.isDir()) {
|
||||
if (back != null) {
|
||||
if (schem.isDir()) {
|
||||
back.reOpenDirUp();
|
||||
} else {
|
||||
back.reOpen();
|
||||
@@ -285,16 +292,16 @@ public class GUI {
|
||||
inv.open();
|
||||
}
|
||||
|
||||
private static void deleteMembership(Player p, SchematicNode schem, SchematicSelector back){
|
||||
private static void deleteMembership(Player p, SchematicNode schem, SchematicSelector back) {
|
||||
SteamwarUser user = getUser(p);
|
||||
SWInventory inv = new SWInventory(p, 9, SchematicSystem.MESSAGE.parse("GUI_DELETE_MEMBER_TITLE", p, schem.generateBreadcrumbs(user)));
|
||||
inv.setItem(0, Material.RED_DYE, (byte) 1, SchematicSystem.MESSAGE.parse("CONFIRM", p), click -> {
|
||||
NodeMember member = NodeMember.getNodeMember(schem.getId(), user.getId());
|
||||
if(member != null)
|
||||
if (member != null)
|
||||
member.delete();
|
||||
SchematicSystem.MESSAGE.send("GUI_DELETE_MEMBER_DONE", p, schem.generateBreadcrumbs(user));
|
||||
if(back != null) {
|
||||
if(schem.isDir()) {
|
||||
if (back != null) {
|
||||
if (schem.isDir()) {
|
||||
back.reOpenDirUp();
|
||||
} else {
|
||||
back.reOpen();
|
||||
@@ -306,16 +313,16 @@ public class GUI {
|
||||
inv.open();
|
||||
}
|
||||
|
||||
static void delete(Player p, SchematicNode schem, SchematicSelector back){
|
||||
if(SteamwarUser.get(p.getUniqueId()).getId() == schem.getOwner())
|
||||
static void delete(Player p, SchematicNode schem, SchematicSelector back) {
|
||||
if (SteamwarUser.get(p.getUniqueId()).getId() == schem.getOwner())
|
||||
deleteOwn(p, schem, back);
|
||||
else
|
||||
deleteMembership(p, schem, back);
|
||||
}
|
||||
|
||||
static void delmembers(Player p, SchematicNode schem){
|
||||
static void delmembers(Player p, SchematicNode schem) {
|
||||
List<SWListInv.SWListEntry<NodeMember>> members = new LinkedList<>();
|
||||
for(NodeMember member : schem.getMembers()){
|
||||
for (NodeMember member : schem.getMembers()) {
|
||||
SteamwarUser user = SteamwarUser.byId(member.getMember());
|
||||
members.add(new SWListInv.SWListEntry<>(SWItem.getPlayerSkull(user.getUserName()), member));
|
||||
}
|
||||
@@ -329,7 +336,7 @@ public class GUI {
|
||||
inv.open();
|
||||
}
|
||||
|
||||
private static void changeItem(Player p, SchematicNode schem, SchematicSelector back){
|
||||
private static void changeItem(Player p, SchematicNode schem, SchematicSelector back) {
|
||||
UtilGui.openMaterialSelector(p, SchematicSystem.MESSAGE.parse("GUI_CHANGE_ITEM", p), material -> {
|
||||
schem.setItem(material.name());
|
||||
p.closeInventory();
|
||||
|
||||
Reference in New Issue
Block a user