diff --git a/SchematicSystem_Core/src/SchematicSystem.properties b/SchematicSystem_Core/src/SchematicSystem.properties index f3a2f19..7bba075 100644 --- a/SchematicSystem_Core/src/SchematicSystem.properties +++ b/SchematicSystem_Core/src/SchematicSystem.properties @@ -33,28 +33,25 @@ UTIL_INFO_OWNER=§7Owner: §e{0} UTIL_INFO_PARENT=§7Directory: §e{0} UTIL_INFO_UPDATED=§7Last update: §e{0} UTIL_INFO_TYPE=§7Type: §e{0} -UTIL_INFO_TYPE_DIR=§7DIR +UTIL_INFO_TYPE_DIR=§eDIR UTIL_INFO_RANK=§7Rank: §e{0} UTIL_INFO_COLOR=§Color translation: {0} UTIL_INFO_REPLAY=§7Replay playback: {0} +UTIL_INFO_ELO=§7Elo: §e{0} UTIL_INFO_FORMAT=§7Format: §e{0} UTIL_INFO_STATUS=§cState: §c{0}: {1} UTIL_INFO_MEMBER=§7Members: §e{0} -UTIL_INFO_ACTION_LOAD=[Load] +UTIL_INFO_MEMBER_STRING=Members: +UTIL_INFO_ACTION_LOAD=(Load) UTIL_INFO_ACTION_LOAD_HOVER=§eLoad schematic -UTIL_INFO_ACTION_DOWNLOAD=[Download] +UTIL_INFO_ACTION_DOWNLOAD=(Download) UTIL_INFO_ACTION_DOWNLOAD_HOVER=§eDownload schematic -UTIL_INFO_ACTION_TYPE=[Change type] UTIL_INFO_ACTION_TYPE_HOVER=§eChange schematic type -UTIL_INFO_ACTION_ADD=[Add] UTIL_INFO_ACTION_ADD_HOVER=§eAdd member -UTIL_INFO_ACTION_REMOVE=[Remove] -UTIL_INFO_ACTION_REMOVE_HOVER=§eRemove member -UTIL_INFO_ACTION_MOVE=[Move] +UTIL_INFO_ACTION_REMOVE_HOVER=§eRemove {0} UTIL_INFO_ACTION_MOVE_HOVER=§eMove schematic -UTIL_INFO_ACTION_RENAME=[Rename] UTIL_INFO_ACTION_RENAME_HOVER=§eRename schematic -UTIL_INFO_ACTION_DELETE=[Delete] +UTIL_INFO_ACTION_DELETE=(Delete) UTIL_INFO_ACTION_DELETE_HOVER=§eDelete schematic UTIL_LOAD_NOT_HERE=§cYou cannot load schematics here UTIL_LOAD_NOT_HERE_ALL=§cSchematics cannot be loaded on this build diff --git a/SchematicSystem_Core/src/SchematicSystem_de.properties b/SchematicSystem_Core/src/SchematicSystem_de.properties index a9d085d..7f7e534 100644 --- a/SchematicSystem_Core/src/SchematicSystem_de.properties +++ b/SchematicSystem_Core/src/SchematicSystem_de.properties @@ -29,20 +29,16 @@ UTIL_INFO_COLOR=§7Farbersetzung: {0} UTIL_INFO_REPLAY=§7Replaywiedergabe: {0} UTIL_INFO_STATUS=§cStatus: §c{0}: {1} UTIL_INFO_MEMBER=§7Mitglieder: §e{0} -UTIL_INFO_ACTION_LOAD=[Laden] +UTIL_INFO_MEMBER_STRING=Mitglieder: +UTIL_INFO_ACTION_LOAD=(Laden) UTIL_INFO_ACTION_LOAD_HOVER=§eSchematic laden UTIL_INFO_ACTION_DOWNLOAD_HOVER=§eSchematic downloaden -UTIL_INFO_ACTION_TYPE=[Typ ändern] UTIL_INFO_ACTION_TYPE_HOVER=§eSchematic Typ ändern -UTIL_INFO_ACTION_ADD=[Hinzufügen] UTIL_INFO_ACTION_ADD_HOVER=§eMember hinzufügen -UTIL_INFO_ACTION_REMOVE=[Entfernen] -UTIL_INFO_ACTION_REMOVE_HOVER=§eMember entfernen -UTIL_INFO_ACTION_MOVE=[Verschieben] +UTIL_INFO_ACTION_REMOVE_HOVER=§e{0} entfernen UTIL_INFO_ACTION_MOVE_HOVER=§eSchematic verschieben -UTIL_INFO_ACTION_RENAME=[Umbenennen] UTIL_INFO_ACTION_RENAME_HOVER=§eSchematic umbenennen -UTIL_INFO_ACTION_DELETE=[Löschen] +UTIL_INFO_ACTION_DELETE=(Löschen) UTIL_INFO_ACTION_DELETE_HOVER=§eSchematic löschen UTIL_LOAD_NOT_HERE=§cDu kannst hier keine Schematics laden UTIL_LOAD_NOT_HERE_ALL=§cAuf diesem Bau können keine Schematics geladen werden diff --git a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/SchematicCommandUtils.java b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/SchematicCommandUtils.java index 18b3140..97fdb67 100644 --- a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/SchematicCommandUtils.java +++ b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/SchematicCommandUtils.java @@ -179,13 +179,40 @@ public class SchematicCommandUtils { public static void printSchemInfo(Player player, SchematicNode node) { SteamwarUser user = getUser(player); - SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_SCHEM", player, node.getName()); - SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_NAME", player, node.generateBreadcrumbs(user)); - SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_OWNER", player, SteamwarUser.get(node.getOwner()).getUserName()); - SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_PARENT", player, node.getParent() == null || node.getParent() == 0 ? "/" : node.getParentNode().generateBreadcrumbs(user)); - SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_UPDATED", player, node.getLastUpdate().toLocalDateTime()); - SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_TYPE", player, node.isDir() ? SchematicSystem.MESSAGE.parse("UTIL_INFO_TYPE_DIR", player) : node.getSchemtype().name()); + SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_SCHEM", player, node.generateBreadcrumbs(user)); + if(node.getOwner() == user.getId()) { + player.spigot().sendMessage( + new ComponentBuilder(SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_NAME", false, player, node.getName())) + .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[] {SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_RENAME_HOVER", false, player)})) + .event(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/schem rename " + node.generateBreadcrumbs(user) + " ")) + .create() + ); + } else { + SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_NAME", player, node.getName()); + } + SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_OWNER", player, node.getOwner() == user.getId() ? user.getUserName() : SteamwarUser.get(node.getOwner()).getUserName()); + if(node.getOwner() == user.getId()) { + player.spigot().sendMessage( + new ComponentBuilder(SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_PARENT", false, player, node.getParent() == null ? "/" : node.getParentNode().generateBreadcrumbs(user))) + .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[] {SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_MOVE_HOVER", false, player)})) + .event(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/schem move " + node.generateBreadcrumbs(user) + " " + node.generateBreadcrumbs(user).replace("/" + node.getName(), ""))) + .create() + ); + } else { + SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_PARENT", player, node.getParent() == null ? "/" : node.getParentNode().generateBreadcrumbs(user)); + } + SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_UPDATED", player, node.getLastUpdate()); if (!node.isDir()) { + if(node.getOwner() == user.getId()) { + player.spigot().sendMessage( + new ComponentBuilder(SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_TYPE", false, player, node.getSchemtype().name())) + .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[] {SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_TYPE_HOVER", false, player)})) + .event(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/schem changetype " + node.generateBreadcrumbs(user))) + .create() + ); + } else { + SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_TYPE", player, node.getSchemtype().name()); + } if (node.getRank() > 0) { SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_RANK", player, node.getRank()); } @@ -193,16 +220,35 @@ public class SchematicCommandUtils { if (node.getSchemtype().fightType()) { SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_COLOR", player, SchematicSystem.MESSAGE.parse(node.replaceColor() ? "ON" : "OFF", player)); SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_REPLAY", player, SchematicSystem.MESSAGE.parse(node.allowReplay() ? "ON" : "OFF", player)); + SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_ELO", player, node.getElo(Season.getSeason())); } SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_FORMAT", player, node.getSchemFormat() ? ".schem" : ".schematic"); - CheckedSchematic.getLastDeclinedOfNode(node).stream().findFirst().ifPresent(checkedSchematic -> - SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_STATUS", player, checkedSchematic.getStartTime(), checkedSchematic.getDeclineReason())); + CheckedSchematic.getLastDeclinedOfNode(node).stream().findFirst().ifPresent(checkedSchematic -> SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_STATUS", player, checkedSchematic.getEndTime(), checkedSchematic.getDeclineReason())); + } else { + SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_TYPE", player, SchematicSystem.MESSAGE.parse("UTIL_INFO_TYPE_DIR", player)); } - List schematicMembers = new ArrayList<>(); - NodeMember.getNodeMembers(node.getId()).forEach(nodeMember -> schematicMembers.add(SteamwarUser.get(nodeMember.getMember()).getUserName())); - if (!schematicMembers.isEmpty()) { - SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_MEMBER", player, schematicMembers); + + + if(node.getOwner() == user.getId()) { + ComponentBuilder memberBuilder = new ComponentBuilder(SchematicSystem.MESSAGE.parse("UTIL_INFO_MEMBER_STRING", player) + " ").color(ChatColor.GRAY); + NodeMember.getNodeMembers(node.getId()).forEach(nodeMember -> { + SteamwarUser member = SteamwarUser.get(nodeMember.getMember()); + memberBuilder.append(member.getUserName()) + .color(ChatColor.YELLOW) + .event(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/schem delmember " + node.generateBreadcrumbs(user) + " " + member.getUserName())) + .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[]{SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_REMOVE_HOVER", false, player, member.getUserName())})) + .append(" ", ComponentBuilder.FormatRetention.NONE); + }); + memberBuilder.append("(+)", ComponentBuilder.FormatRetention.NONE) + .color(ChatColor.GREEN) + .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[]{SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_ADD_HOVER", false, player)})) + .event(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/schem addmember " + node.generateBreadcrumbs(user) + " ")); + player.spigot().sendMessage(memberBuilder.create()); + } else { + List schematicMembers = new ArrayList<>(); + NodeMember.getNodeMembers(node.getId()).forEach(nodeMember -> schematicMembers.add(SteamwarUser.get(nodeMember.getMember()).getUserName())); + SchematicSystem.MESSAGE.sendPrefixless("UTIL_INFO_MEMBER", player, schematicMembers.stream().reduce((s, s2) -> s + ", " + s2).orElse("")); } TextComponent base = new TextComponent(); @@ -220,45 +266,13 @@ public class SchematicCommandUtils { download.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[]{SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_DOWNLOAD_HOVER", false, player)})); download.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/schem download " + node.generateBreadcrumbs(user))); base.addExtra(download); - - TextComponent changeTyp = SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_TYPE", false, player); - changeTyp.setColor(ChatColor.BLUE); - changeTyp.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[]{SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_TYPE_HOVER", false, player)})); - changeTyp.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/schem changetype " + node.generateBreadcrumbs(user))); - base.addExtra(changeTyp); } } - if (node.getOwner() == user.getId()) { - TextComponent addMember = SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_ADD", false, player); - addMember.setColor(ChatColor.AQUA); - addMember.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[]{SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_ADD_HOVER", false, player)})); - addMember.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/schem addmember " + node.generateBreadcrumbs(user) + " ")); - base.addExtra(addMember); - - TextComponent delMember = SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_REMOVE", false, player); - delMember.setColor(ChatColor.RED); - delMember.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[]{SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_REMOVE_HOVER", false, player)})); - delMember.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/schem delmember " + node.generateBreadcrumbs(user) + " ")); - base.addExtra(delMember); - - TextComponent move = SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_MOVE", false, player); - move.setColor(ChatColor.DARK_PURPLE); - move.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[]{SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_MOVE_HOVER", false, player)})); - move.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/schem move " + node.generateBreadcrumbs(user) + " " + node.generateBreadcrumbs(user).replace("/" + node.getName(), ""))); - base.addExtra(move); - - TextComponent rename = SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_RENAME", false, player); - rename.setColor(ChatColor.LIGHT_PURPLE); - rename.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[]{SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_RENAME_HOVER", false, player)})); - rename.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/schem rename " + node.generateBreadcrumbs(user) + " [Neuer Name]")); - base.addExtra(rename); - } - TextComponent delete = SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_DELETE", false, player); delete.setColor(ChatColor.DARK_RED); delete.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[]{SchematicSystem.MESSAGE.parseToComponent("UTIL_INFO_ACTION_DELETE_HOVER", false, player)})); - delete.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/schem delete " + node.generateBreadcrumbs(user))); + delete.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/schem delete " + node.generateBreadcrumbs(user))); base.addExtra(delete); if (!base.getExtra().isEmpty()) {