diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/util/NightVisionCommand.java b/BauSystem_Main/src/de/steamwar/bausystem/features/util/NightVisionCommand.java index 78ca6ee7..f4c99d1b 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/util/NightVisionCommand.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/util/NightVisionCommand.java @@ -36,7 +36,7 @@ public class NightVisionCommand extends SWCommand { } @Register(help = true) - public void genericHelp(Player p, String[] args) { + public void genericHelp(Player p, String... args) { p.sendMessage(ChatColor.DARK_GRAY + "/" + ChatColor.YELLOW + "nightvision " + ChatColor.DARK_GRAY + "-" + ChatColor.GRAY + " Schalte Nightvision an oder aus."); } diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/util/SpeedCommand.java b/BauSystem_Main/src/de/steamwar/bausystem/features/util/SpeedCommand.java index 91b1be7f..d465f8de 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/util/SpeedCommand.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/util/SpeedCommand.java @@ -34,7 +34,7 @@ public class SpeedCommand extends SWCommand { } @Register(help = true) - public void genericHelp(Player p, String[] args) { + public void genericHelp(Player p, String... args) { p.sendMessage(ChatColor.DARK_GRAY + "/" + ChatColor.YELLOW + "speed " + ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "1" + ChatColor.DARK_GRAY + "-" + ChatColor.YELLOW + "10" + ChatColor.DARK_GRAY + "] - " + ChatColor.GRAY + "Setzte deine Flug- und Laufgeschindigkeit."); p.sendMessage(BauSystem.PREFIX + "Aktuelle geschwindigkeit: " + ChatColor.YELLOW + p.getFlySpeed() * 10F); } diff --git a/BauSystem_Main/src/de/steamwar/bausystem/linkage/LinkageUtils.java b/BauSystem_Main/src/de/steamwar/bausystem/linkage/LinkageUtils.java index 3a03015e..cb1bac46 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/linkage/LinkageUtils.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/linkage/LinkageUtils.java @@ -36,15 +36,17 @@ public class LinkageUtils { private Map, Object> objectMap = new HashMap<>(); public void link() { - internalLinkOrUnlink(false); + internalLinkOrUnlink(false, Linked.class); + internalLinkOrUnlink(false, Linked.Linkages.class); } public void unlink() { - internalLinkOrUnlink(true); + internalLinkOrUnlink(true, Linked.Linkages.class); + internalLinkOrUnlink(true, Linked.class); } - private void internalLinkOrUnlink(boolean unlink) { - try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(BauSystem.class.getResourceAsStream("/de.steamwar.bausystem/" + Linked.class.getTypeName())))) { + private void internalLinkOrUnlink(boolean unlink, Class toLink) { + try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(BauSystem.class.getResourceAsStream("/de.steamwar.bausystem/" + toLink.getTypeName().replace("$", "."))))) { bufferedReader.lines().forEach(s -> { try { linkOrUnlink(Class.forName(s), unlink); @@ -75,14 +77,13 @@ public class LinkageUtils { linkageTypeList.add(linked.value()); } } - + + linkageTypeList.removeIf(linkageType -> linkageType.isUnlink() != unlink); if (linkageTypeList.isEmpty()) { return; } - linkageTypeList.removeIf(linkageType -> linkageType.isUnlink() != unlink); linkageTypeList.sort(Comparator.comparingInt(LinkageType::getOrder)); - Object object = objectMap.computeIfAbsent(clazz, LinkageUtils::constructInstance); linkageTypeList.forEach(linkageType -> linkageType.getLinkageConsumer().accept(object)); } diff --git a/BauSystem_Main/src/de/steamwar/bausystem/linkage/Linked.java b/BauSystem_Main/src/de/steamwar/bausystem/linkage/Linked.java index 2096d1ac..ff447ed0 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/linkage/Linked.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/linkage/Linked.java @@ -30,6 +30,7 @@ import java.lang.annotation.*; public @interface Linked { LinkageType value(); + @IndexAnnotated @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) @interface Linkages {