From b088958c9f6935d356b6c087c8e8106b400aa24f Mon Sep 17 00:00:00 2001 From: Raven Szewczyk Date: Sat, 1 Apr 2023 20:06:12 +0100 Subject: Jabel, Generic injection and mostly automatic code cleanup (#1829) * Enable Jabel&Generic injection, fix type error caused by this * add missing <> * Infer generic types automatically * Parametrize cast types * Use enhanced for loops * Unnecessary boxing * Unnecessary unboxing * Use Objects.equals * Explicit type can be replaced with `<>` * Collapse identical catch blocks * Add SafeVarargs where applicable * Anonymous type can be replaced with lambda * Use List.sort directly * Lambda can be a method reference * Statement lambda can be an expression lambda * Use string switches * Instanceof pattern matching * Text block can be used * Migrate to enhanced switch * Java style array declarations * Unnecessary toString() * More unnecessary String conversions * Unnecessary modifiers * Unnecessary semicolons * Fix duplicate conditions * Extract common code from if branches * Replace switches with ifs for 1-2 cases * Inner class may be static * Minor performance issues * Replace string appending in loops with string builders * Fix IntelliJ using the wrong empty list method * Use Long.compare * Generic arguments: getSubItems * Generic arguments: getSubBlocks * Raw types warnings * Fix remaining missing generics * Too weak variable type leads to unnecessary cast * Redundant type casts * Redundant array length check * Redundant vararg arrays * Manual min/max implementations * A couple missed inspections * Goodbye explosion power ternary ladder * Apply spotless * Get rid of the other two big ternary ladders * Binary search explosion power * Don't overcomplicate things --- .../misc/spaceprojects/SpaceProjectManager.java | 2 +- .../misc/spaceprojects/base/SP_Requirements.java | 9 ++---- .../misc/spaceprojects/commands/SPM_Command.java | 32 ++++++++++------------ .../misc/spaceprojects/commands/SP_Command.java | 21 ++++++-------- .../misc/spaceprojects/enums/SpaceBodyType.java | 2 +- .../common/misc/spaceprojects/enums/StarType.java | 2 +- .../misc/spaceprojects/enums/UpgradeStatus.java | 2 +- .../spaceprojects/interfaces/ISpaceProject.java | 14 +++++----- 8 files changed, 36 insertions(+), 48 deletions(-) (limited to 'src/main/java/gregtech/common/misc/spaceprojects') diff --git a/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectManager.java b/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectManager.java index db7b811a1d..1067673399 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectManager.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectManager.java @@ -63,7 +63,7 @@ public class SpaceProjectManager { */ public static boolean addTeamProject(UUID member, ISpaceBody location, String projectName, ISpaceProject project) { if (!spaceTeamProjects.containsKey(getLeader(member)) || spaceTeamProjects.get(getLeader(member)) == null) { - spaceTeamProjects.put(getLeader(member), new HashMap, ISpaceProject>()); + spaceTeamProjects.put(getLeader(member), new HashMap<>()); } Map, ISpaceProject> map = spaceTeamProjects.get(getLeader(member)); diff --git a/src/main/java/gregtech/common/misc/spaceprojects/base/SP_Requirements.java b/src/main/java/gregtech/common/misc/spaceprojects/base/SP_Requirements.java index 0cce6f08f0..b910b5e344 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/base/SP_Requirements.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/base/SP_Requirements.java @@ -1,6 +1,7 @@ package gregtech.common.misc.spaceprojects.base; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import gregtech.common.misc.spaceprojects.enums.SpaceBodyType; @@ -60,16 +61,12 @@ public class SP_Requirements implements ISP_Requirements { } public SP_Requirements setUpgrades(ISP_Upgrade... requirementUpgrades) { - for (ISP_Upgrade upgrade : requirementUpgrades) { - upgrades.add(upgrade); - } + upgrades.addAll(Arrays.asList(requirementUpgrades)); return this; } public SP_Requirements setSpaceProjects(ISpaceProject... requirementProjects) { - for (ISpaceProject project : requirementProjects) { - spaceProjects.add(project); - } + spaceProjects.addAll(Arrays.asList(requirementProjects)); return this; } diff --git a/src/main/java/gregtech/common/misc/spaceprojects/commands/SPM_Command.java b/src/main/java/gregtech/common/misc/spaceprojects/commands/SPM_Command.java index 6bd2561d68..f3c93c25b6 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/commands/SPM_Command.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/commands/SPM_Command.java @@ -123,10 +123,8 @@ public class SPM_Command extends CommandBase { List autoComplete = new ArrayList<>(); String filter = arguments.length == 0 ? "" : arguments[0].trim(); switch (arguments.length) { - case 1: - autoComplete.addAll(Arrays.asList(getSubCommands())); - break; - case 2: + case 1 -> autoComplete.addAll(Arrays.asList(getSubCommands())); + case 2 -> { filter = arguments.length == 1 ? "" : arguments[1].trim(); if (arguments[0].equals(LIST)) { autoComplete.addAll(Arrays.asList(getListArguments())); @@ -135,21 +133,19 @@ public class SPM_Command extends CommandBase { } else { autoComplete.addAll(Arrays.asList(getProjects())); } - break; - case 3: + } + case 3 -> { filter = arguments.length == 2 ? "" : arguments[2].trim(); - if (arguments[1].equals(ALL)) { - break; - } else if (arguments[0].equals(LIST)) { + if (arguments[1].equals(ALL)) {} else if (arguments[0].equals(LIST)) { autoComplete.addAll(Arrays.asList(getPlayers())); } else { autoComplete.addAll(Arrays.asList(getLocations())); } - break; - case 4: + } + case 4 -> { filter = arguments.length == 3 ? "" : arguments[3].trim(); autoComplete.addAll(Arrays.asList(getPlayers())); - break; + } } String finalFilter = filter; return autoComplete.stream() @@ -208,24 +204,24 @@ public class SPM_Command extends CommandBase { private void processList(ICommandSender sender, String argument, String playerName) { UUID tID = SpaceProjectManager.getPlayerUUIDFromName(playerName); switch (argument) { - case ALL: + case ALL -> { for (String project : SpaceProjectManager.getProjectsMap() .keySet()) { sender.addChatMessage(new ChatComponentText(project)); } - break; - case AVAILABLE: + } + case AVAILABLE -> { for (ISpaceProject project : SpaceProjectManager.getAllProjects()) { if (project.meetsRequirements(tID, false)) { sender.addChatMessage(new ChatComponentText(project.getProjectName())); } } - break; - case UNLOCKED: + } + case UNLOCKED -> { for (ISpaceProject project : SpaceProjectManager.getTeamSpaceProjects(tID)) { sender.addChatMessage(new ChatComponentText(project.getProjectName())); } - break; + } } } diff --git a/src/main/java/gregtech/common/misc/spaceprojects/commands/SP_Command.java b/src/main/java/gregtech/common/misc/spaceprojects/commands/SP_Command.java index 8ef301b6ba..29ae7e9432 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/commands/SP_Command.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/commands/SP_Command.java @@ -19,9 +19,8 @@ import gregtech.common.misc.spaceprojects.SpaceProjectManager; */ public class SP_Command extends CommandBase { - private static Set> invite = Collections.newSetFromMap( - new WeakHashMap, Boolean>()); - private static Set confirm = Collections.newSetFromMap(new WeakHashMap()); + private static Set> invite = Collections.newSetFromMap(new WeakHashMap<>()); + private static Set confirm = Collections.newSetFromMap(new WeakHashMap<>()); private static final String INVITE = "invite"; private static final String ACCEPT = "accept"; @@ -49,24 +48,20 @@ public class SP_Command extends CommandBase { return; } switch (arguments[0]) { - case INVITE: + case INVITE -> { if (arguments.length < 2) { return; } processInvite(sender, arguments[1]); - break; - case ACCEPT: + } + case ACCEPT -> { if (arguments.length < 2) { return; } processAccept(sender, arguments[1]); - break; - case LEAVE: - processLeave(sender); - break; - case CONFIRM: - processConfirm(sender); - break; + } + case LEAVE -> processLeave(sender); + case CONFIRM -> processConfirm(sender); } } diff --git a/src/main/java/gregtech/common/misc/spaceprojects/enums/SpaceBodyType.java b/src/main/java/gregtech/common/misc/spaceprojects/enums/SpaceBodyType.java index 511c2c438e..8ca8b663da 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/enums/SpaceBodyType.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/enums/SpaceBodyType.java @@ -13,5 +13,5 @@ public enum SpaceBodyType { GasGiant, DwarfPlanet, IceGiant, - NONE; + NONE } diff --git a/src/main/java/gregtech/common/misc/spaceprojects/enums/StarType.java b/src/main/java/gregtech/common/misc/spaceprojects/enums/StarType.java index abcb75d55b..a329c7c639 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/enums/StarType.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/enums/StarType.java @@ -17,7 +17,7 @@ public enum StarType { private double solarLuminosity; private float costMultiplier; - private StarType(double solarLuminosity, float costMultiplier) { + StarType(double solarLuminosity, float costMultiplier) { this.solarLuminosity = solarLuminosity; this.costMultiplier = costMultiplier; } diff --git a/src/main/java/gregtech/common/misc/spaceprojects/enums/UpgradeStatus.java b/src/main/java/gregtech/common/misc/spaceprojects/enums/UpgradeStatus.java index d171d53c29..3e662720ac 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/enums/UpgradeStatus.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/enums/UpgradeStatus.java @@ -7,5 +7,5 @@ public enum UpgradeStatus { Locked, Unlocked, InProgress, - Finished; + Finished } diff --git a/src/main/java/gregtech/common/misc/spaceprojects/interfaces/ISpaceProject.java b/src/main/java/gregtech/common/misc/spaceprojects/interfaces/ISpaceProject.java index 3de3ef2b94..369c7c8c7a 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/interfaces/ISpaceProject.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/interfaces/ISpaceProject.java @@ -205,7 +205,7 @@ public interface ISpaceProject { /** * Checks if the project meets all requirements with its current location - * + * * @param team Team wanting said project and checking their projects * @return true if all requirements met, false otherwise */ @@ -214,7 +214,7 @@ public interface ISpaceProject { /** * Checks if the project meets requirements if it requires other projects, unless {@code checkLocation} is true, * then it also checks for the location - * + * * @param team Team wanting said project and checking their projects * @param checkLocation If the location position should be checked * @return true if all requirements met, false otherwise @@ -228,7 +228,7 @@ public interface ISpaceProject { /** * Checks if the project has a certain upgrade installed or not - * + * * @param upgradeName Upgrade being searched for * @return True if that upgrade has been installed, false otherwise */ @@ -237,7 +237,7 @@ public interface ISpaceProject { /** * @author BlueWeabo */ - public interface ISP_Upgrade { + interface ISP_Upgrade { /** * @return internal name of the upgrade @@ -373,14 +373,14 @@ public interface ISpaceProject { /** * Sets the current stage of the upgrade - * + * * @param stage */ void setUpgradeCurrentStage(int stage); /** * Checks if the team has met all requirements to be able to build said upgrade - * + * * @param team The one starting the upgrade * @return true if all requirements are met, false otherwise */ @@ -405,7 +405,7 @@ public interface ISpaceProject { /** * @author BlueWeabo */ - public interface ISP_Requirements { + interface ISP_Requirements { /** * @return Space Body Type required by the project/upgrade -- cgit