From 3dbfe379aa09c5ef8d4ad674a80737cd9204dd9d Mon Sep 17 00:00:00 2001 From: montlikadani Date: Wed, 10 Jun 2020 07:46:45 +0200 Subject: [PATCH] Add examples for how to use -all sub name --- .../gamingmesh/jobs/CMILib/CMIMaterial.java | 39 ++++++++---------- .../gamingmesh/jobs/config/ConfigManager.java | 6 ++- .../jobs/config/NameTranslatorManager.java | 8 ++-- .../com/gamingmesh/jobs/container/Job.java | 41 ++++++++++--------- src/main/resources/jobConfig.yml | 14 +++++++ 5 files changed, 63 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/gamingmesh/jobs/CMILib/CMIMaterial.java b/src/main/java/com/gamingmesh/jobs/CMILib/CMIMaterial.java index dd367992..7e8ec290 100644 --- a/src/main/java/com/gamingmesh/jobs/CMILib/CMIMaterial.java +++ b/src/main/java/com/gamingmesh/jobs/CMILib/CMIMaterial.java @@ -1080,7 +1080,7 @@ public enum CMIMaterial { @Deprecated public Integer getLegacyId() { - return this.legacyId == null ? 0 : this.legacyId; + return legacyId == null ? 0 : legacyId; } @Deprecated @@ -1192,11 +1192,9 @@ public enum CMIMaterial { } public static CMIMaterial getRandom(CMIMaterial mat) { - List ls = new ArrayList(); + List ls = new ArrayList<>(); for (CMIMaterial one : CMIMaterial.values()) { - if (one.getLegacyId() == null) - continue; if (!one.getLegacyId().equals(mat.getLegacyId())) continue; ls.add(one); @@ -1226,8 +1224,6 @@ public enum CMIMaterial { if (mat == null) return CMIMaterial.NONE; for (CMIMaterial one : CMIMaterial.values()) { - if (one.getLegacyId() == null) - continue; if (!one.getLegacyId().equals(mat.getLegacyId())) continue; if (one.getLegacyData() == id) @@ -1240,13 +1236,12 @@ public enum CMIMaterial { public static CMIMaterial get(String id) { if (id == null) return CMIMaterial.NONE; - Integer ids; Integer data; id = id.replaceAll("_| |minecraft:", "").toLowerCase(); if (id.contains(":")) { try { - ids = Integer.parseInt(id.split(":")[0]); + Integer ids = Integer.parseInt(id.split(":")[0]); data = Integer.parseInt(id.split(":")[1]); if (ids <= 0) return CMIMaterial.NONE; @@ -2510,18 +2505,20 @@ public enum CMIMaterial { } public static String getGeneralMaterialName(String fullName) { - String newName = fullName.toUpperCase(); - if (newName.startsWith("STRIPPED")) { - return newName.replaceFirst("_[^_]+", ""); - } - else if (newName.matches("^(DARK|LIGHT).+")) { - return newName.replaceFirst(".+?_.+?_", ""); - } - else if (newName.matches( - "^(WHITE|ORANGE|MAGENTA|YELLOW|LIME|PINK|GRAY|CYAN|PURPLE|BLUE|BROWN|GREEN|RED|BLACK|" + - "OAK|SPRUCE|BIRCH|JUNGLE|ACACIA).+")) { - return newName.replaceFirst(".+?_", ""); - } - return fullName; + String newName = fullName.toUpperCase(); + if (newName.startsWith("STRIPPED")) { + return newName.replaceFirst("_[^_]+", ""); + } + + if (newName.matches("^(DARK|LIGHT).+")) { + return newName.replaceFirst(".+?_.+?_", ""); + } + + if (newName.matches("^(WHITE|ORANGE|MAGENTA|YELLOW|LIME|PINK|GRAY|CYAN|PURPLE|BLUE|BROWN|GREEN|RED|BLACK|" + + "OAK|SPRUCE|BIRCH|JUNGLE|ACACIA).+")) { + return newName.replaceFirst(".+?_", ""); + } + + return fullName; } } diff --git a/src/main/java/com/gamingmesh/jobs/config/ConfigManager.java b/src/main/java/com/gamingmesh/jobs/config/ConfigManager.java index dfa87418..9a72dbe4 100644 --- a/src/main/java/com/gamingmesh/jobs/config/ConfigManager.java +++ b/src/main/java/com/gamingmesh/jobs/config/ConfigManager.java @@ -1402,13 +1402,15 @@ public class ConfigManager { subType = myKey.split(":")[1]; } } + if (type == null) { log.warning("Job " + jobKey + " has an invalid " + actionType.getName() + " type property: " + key + "!"); continue; } + if (":ALL".equalsIgnoreCase(subType)) { - meta = "ALL"; - type = CMIMaterial.getGeneralMaterialName(type); + meta = "ALL"; + type = CMIMaterial.getGeneralMaterialName(type); } if (actionType == ActionType.TNTBREAK) diff --git a/src/main/java/com/gamingmesh/jobs/config/NameTranslatorManager.java b/src/main/java/com/gamingmesh/jobs/config/NameTranslatorManager.java index 69d6b467..5d588e07 100644 --- a/src/main/java/com/gamingmesh/jobs/config/NameTranslatorManager.java +++ b/src/main/java/com/gamingmesh/jobs/config/NameTranslatorManager.java @@ -49,8 +49,9 @@ public class NameTranslatorManager { case FISH: case STRIPLOGS: String fallbackMaterialName = Arrays.stream(materialName.split("\\s|:")) - .map(word -> word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase()) - .collect(Collectors.joining(" ")); // returns capitalized word (from this -> To This) + .map(word -> word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase()) + .collect(Collectors.joining(" ")); // returns capitalized word (from this -> To This) + materialName = materialName.replace(" ", ""); CMIMaterial mat = CMIMaterial.get(materialName.replace(" ", "")); @@ -83,8 +84,9 @@ public class NameTranslatorManager { if (nameLs != null && nameMeta != null) { return nameLs + ":" + nameMeta; } + if (mat.equals(CMIMaterial.NONE)) { - return fallbackMaterialName; + return fallbackMaterialName; } return mat.getName(); diff --git a/src/main/java/com/gamingmesh/jobs/container/Job.java b/src/main/java/com/gamingmesh/jobs/container/Job.java index 56121e94..feafe563 100644 --- a/src/main/java/com/gamingmesh/jobs/container/Job.java +++ b/src/main/java/com/gamingmesh/jobs/container/Job.java @@ -18,9 +18,8 @@ package com.gamingmesh.jobs.container; -import com.gamingmesh.jobs.CMILib.CMIMaterial; import com.gamingmesh.jobs.Jobs; -import com.gamingmesh.jobs.actions.PotionItemActionInfo; +import com.gamingmesh.jobs.CMILib.CMIMaterial; import com.gamingmesh.jobs.resources.jfep.Parser; import com.gamingmesh.jobs.stuff.ChatColor; @@ -226,24 +225,28 @@ public class Job { } public JobInfo getJobInfo(ActionInfo action, int level) { - BiPredicate condition = (jobInfo, actionInfo) -> - jobInfo.getName().equalsIgnoreCase(action.getNameWithSub()) || - (jobInfo.getName() + ":" + jobInfo.getMeta()).equalsIgnoreCase(action.getNameWithSub()) || - jobInfo.getName().equalsIgnoreCase(action.getName()); + BiPredicate condition = (jobInfo, actionInfo) -> { + return jobInfo.getName().equalsIgnoreCase(action.getNameWithSub()) || + (jobInfo.getName() + ":" + jobInfo.getMeta()).equalsIgnoreCase(action.getNameWithSub()) || + jobInfo.getName().equalsIgnoreCase(action.getName()); + }; - String shortActionName = CMIMaterial.getGeneralMaterialName(action.getName()); - for (JobInfo info : getJobInfo(action.getType())) { - if (condition.test(info, action)) { - if (!info.isInLevelRange(level)) { - break; - } - return info; - } - if ((shortActionName + ":ALL").equalsIgnoreCase(info.getName())) { - return info; - } - } - return null; + String shortActionName = CMIMaterial.getGeneralMaterialName(action.getName()); + for (JobInfo info : getJobInfo(action.getType())) { + if (condition.test(info, action)) { + if (!info.isInLevelRange(level)) { + break; + } + + return info; + } + + if ((shortActionName + ":ALL").equalsIgnoreCase(info.getName())) { + return info; + } + } + + return null; } /** diff --git a/src/main/resources/jobConfig.yml b/src/main/resources/jobConfig.yml index 80a423a2..caad842f 100644 --- a/src/main/resources/jobConfig.yml +++ b/src/main/resources/jobConfig.yml @@ -226,6 +226,20 @@ Jobs: # you can use minuses to take away money if the player break this block income: -1.0 experience: -1.0 + # you can use here "-all" sub name to specify if we detect all wool colours + wool-all: + income: 2.0 + points: 1.0 + experience: 1.0 + log-all: + income: 1.0 + points: 1.0 + experience: 1.0 + # you should start material name like this, to detect if that material is exists + white_banner-all: + income: 1.0 + points: 1.0 + experience: 1.0 # Payment for collecting things like sweet berry bush, composter or honey Collect: sweet_berry_bush-3: