Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
bdf50d8
Update NecharDisplayFilter.java
SST-03 Feb 25, 2025
65187dc
Update NecharTooltipFilter.java
SST-03 Feb 25, 2025
b0028b6
Update NecharDisplayFilter.java
SST-03 Feb 25, 2025
c846f9c
Update NecharTooltipFilter.java
SST-03 Feb 25, 2025
2f92d35
Update NecharTooltipFilter.java
SST-03 Feb 25, 2025
1a98d85
Update NecharDisplayFilter.java
SST-03 Feb 25, 2025
9ed8c8f
Update NecharTooltipFilter.java
SST-03 Feb 25, 2025
227809e
Update NecharDisplayFilter.java
SST-03 Feb 25, 2025
f69ed90
Update NecharTooltipFilter.java
SST-03 Feb 25, 2025
6b06b5b
Update NecharDisplayFilter.java
SST-03 Feb 25, 2025
078579f
Update NecharTooltipFilter.java
SST-03 Feb 25, 2025
edf8965
Update NecharTooltipFilter.java
SST-03 Feb 25, 2025
66316d6
Update NecharDisplayFilter.java
SST-03 Feb 25, 2025
3b4e427
Update NecharDisplayFilter.java
SST-03 Feb 25, 2025
ce4bf7f
Update NecharDisplayFilter.java
SST-03 Feb 25, 2025
11ef9ce
Update NecharTooltipFilter.java
SST-03 Feb 25, 2025
0b360fd
many changes
SST-03 Feb 25, 2025
817a090
1
SST-03 Feb 25, 2025
eb0dddb
2
SST-03 Feb 25, 2025
a47b9b3
3
SST-03 Feb 25, 2025
42f8a71
4
SST-03 Feb 25, 2025
12b8240
5
SST-03 Feb 25, 2025
efd59d1
7
SST-03 Feb 25, 2025
005bf56
7
SST-03 Feb 25, 2025
258cd95
8
SST-03 Feb 25, 2025
96d520a
fix a stupid bug
SST-03 Feb 25, 2025
6216615
Merge branch 'master' of https://github.com/SST-03/NotEnoughCharacters
SST-03 Feb 25, 2025
bda4803
10
SST-03 Feb 25, 2025
f3ee73c
11
SST-03 Feb 25, 2025
637433a
add configs && a special search rule
SST-03 Feb 26, 2025
d30bb92
Merge branch 'master' of https://github.com/SST-03/NotEnoughCharacters
SST-03 Feb 26, 2025
1b5dcf4
fix grammar
SST-03 Feb 26, 2025
901abec
2
SST-03 Feb 26, 2025
37d0d60
3
SST-03 Feb 26, 2025
6769d49
4
SST-03 Feb 26, 2025
422cc46
5
SST-03 Feb 26, 2025
162198f
5.1
SST-03 Feb 26, 2025
e54d528
5.2
SST-03 Feb 26, 2025
9bb6095
finish?
SST-03 Feb 26, 2025
585e7f1
grammar fix
SST-03 Mar 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/main/java/net/moecraft/nechar/NecharDisplayFilter.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.moecraft.nechar;

import static net.moecraft.nechar.NotEnoughCharacters.CONTEXT;
import static net.moecraft.nechar.NecharUtils.contain;
import static net.vfyjxf.nechar.NechConfig.enableVoltageSpecialSearchName;

import java.util.regex.Pattern;

Expand All @@ -22,7 +23,7 @@ public NecharDisplayFilter(String searchText, Pattern pattern) {
public boolean matches(ItemStack itemStack) {
String displayName = EnumChatFormatting.getTextWithoutFormattingCodes(itemStack.getDisplayName());

if (!displayName.isEmpty() && CONTEXT.contains(displayName, this.searchText)) {
if (!displayName.isEmpty() && contain(displayName, this.searchText, enableVoltageSpecialSearchName)) {
return true;
}

Expand All @@ -31,12 +32,11 @@ public boolean matches(ItemStack itemStack) {
itemStack.getItem()
.getItemStackDisplayName(itemStack));

if (displayName.isEmpty() && CONTEXT.contains(displayName, this.searchText)) {
if (!displayName.isEmpty() && contain(displayName, this.searchText, enableVoltageSpecialSearchName)) {
return true;
}
}

return super.matches(itemStack);
}

}
6 changes: 4 additions & 2 deletions src/main/java/net/moecraft/nechar/NecharTooltipFilter.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.moecraft.nechar;

import static net.moecraft.nechar.NotEnoughCharacters.CONTEXT;
import static net.moecraft.nechar.NecharUtils.contain;
import static net.vfyjxf.nechar.NechConfig.enableVoltageSpecialSearchTooltips;

import java.util.regex.Pattern;

Expand All @@ -19,7 +20,8 @@ public NecharTooltipFilter(String searchText, Pattern pattern) {

@Override
public boolean matches(ItemStack itemStack) {
return CONTEXT.contains(getSearchTooltip(itemStack), this.searchText) || super.matches(itemStack);
return contain(getSearchTooltip(itemStack), this.searchText, enableVoltageSpecialSearchTooltips)
|| super.matches(itemStack);
}

}
86 changes: 86 additions & 0 deletions src/main/java/net/moecraft/nechar/NecharUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package net.moecraft.nechar;

import static net.moecraft.nechar.NotEnoughCharacters.CONTEXT;
import static net.vfyjxf.nechar.NechConfig.enableIgnoreComma;

public class NecharUtils {

private static String deleteComma(String str) {
return str.replaceAll("(?<=[0-9]),(?=[0-9])", "");
}

private static String replaceExtraChars(String str) {

if (str.contains("\ud872")) {
str = str.replaceAll("\ud872\udf3b", "\ue900") // 钅卢
.replaceAll("\ud872\udf4a", "\ue901") // 钅杜
.replaceAll("\ud872\udf73", "\ue902") // 钅喜
.replaceAll("\ud872\udf5b", "\ue903") // 钅波
.replaceAll("\ud872\udf76", "\ue904") // 钅黑
.replaceAll("\ud872\udf2d", "\ue907"); // 钅仑
}

if (str.contains("\ud86d")) {
str = str.replaceAll("\ud86d\udffc", "\ue906") // 钅达
.replaceAll("\ud86d\udce7", "\ue90a") // 钅夫
.replaceAll("\ud86d\udff7", "\ue90c"); // 钅仑
}

return str;
}

private static boolean containWithVoltage(String voltage, String sourseText, String searchText) {
if (!searchText.contains(voltage)) {
return false;
}
if (!sourseText.contains(voltage)) {
return false;
} // check if [voltage] can be found
String[] sList = searchText.split(voltage, 2); // check if texts between "max" can be found
if (sList.length == 2 && !CONTEXT.contains(sourseText, sList[1])) {
return false;
}
return CONTEXT.contains(sourseText, sList[0]);
}

private static String[] voltageListWithLetterV = { "ulv", "lv", "mv", "hv", "ev", "iv", "luv", "uv", "uhv", "uev",
"uiv", "umv", "uxv" };

public static boolean contain(String sourseText, String searchText, Boolean enableSpecialSearch) {

sourseText = replaceExtraChars(sourseText);
searchText = replaceExtraChars(searchText);

if (enableIgnoreComma && !searchText.contains(",")) {
sourseText = deleteComma(sourseText);
searchText = deleteComma(searchText);
}

if (CONTEXT.contains(sourseText, searchText)) {
return true;
}

// may be very slow, only try to find 1 voltage level
if (!enableSpecialSearch) {
return false;
}

sourseText = sourseText.toLowerCase();
searchText = searchText.toLowerCase();

if (containWithVoltage("zpm", sourseText, searchText) || containWithVoltage("max", sourseText, searchText)) {
return true;
}
if (!(sourseText.contains("v") || searchText.contains("v"))) {
return false;
}
for (String name : voltageListWithLetterV) {
if (containWithVoltage(name, sourseText, searchText)) {
return true;
}
}
return false;
}
// return CONTEXT.contains(sourseText, searchText);

}
42 changes: 28 additions & 14 deletions src/main/java/net/moecraft/nechar/NotEnoughCharacters.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,34 @@ private static class CustomDictLoader extends DictLoader.Default {
@Override
public void load(BiConsumer<Character, String[]> feed) {
super.load(feed);
feed.accept('\ue900', new String[] { "lu2", "jinlu" }); // 钅卢
feed.accept('\ue901', new String[] { "du4", "jindu" }); // 钅杜
feed.accept('\ue902', new String[] { "xi3", "jinxi" }); // 钅喜
feed.accept('\ue903', new String[] { "bo1", "jinbo" }); // 钅波
feed.accept('\ue904', new String[] { "hei1", "jinhei" }); // 钅黑
feed.accept('\u9fcf', new String[] { "mai4", "jinmai" });// 钅麦
feed.accept('\ue906', new String[] { "da2", "jinda" });// 钅达
feed.accept('\ue907', new String[] { "lun2", "jinlun" });// 钅仑
feed.accept('\u9fd4', new String[] { "ge1", "jinge" });// 钅哥
feed.accept('\u9fed', new String[] { "ni3", "jiner" });// 钅尔
feed.accept('\ue90a', new String[] { "fu1", "jinfu" });// 钅夫
feed.accept('\ue90c', new String[] { "li4", "jinli" });// 钅立
feed.accept('\u9fec', new String[] { "tian2", "shitian" });// 石田
feed.accept('\u9feb', new String[] { "ao4", "qiao", "aoqi" });// 气奥
// 钅卢
feed.accept('\ue900', new String[] { "lu2", "jinlu" });
// 钅杜
feed.accept('\ue901', new String[] { "du4", "jindu" });
// 钅喜
feed.accept('\ue902', new String[] { "xi3", "jinxi" });
// 钅波
feed.accept('\ue903', new String[] { "bo1", "jinbo" });
// 钅黑
feed.accept('\ue904', new String[] { "hei1", "jinhei" });
// 钅麦
feed.accept('\u9fcf', new String[] { "mai4", "jinmai" });
// 钅达
feed.accept('\ue906', new String[] { "da2", "jinda" });
// 钅仑
feed.accept('\ue907', new String[] { "lun2", "jinlun" });
// 钅哥
feed.accept('\u9fd4', new String[] { "ge1", "jinge" });
// 钅尔
feed.accept('\u9fed', new String[] { "ni3", "jiner" });
// 钅夫
feed.accept('\ue90a', new String[] { "fu1", "jinfu" });
// 钅立
feed.accept('\ue90c', new String[] { "li4", "jinli" });
// 石田
feed.accept('\u9fec', new String[] { "tian2", "shitian" });
// 气奥
feed.accept('\u9feb', new String[] { "ao4", "qiao", "aoqi" });
}
}

Expand Down
20 changes: 20 additions & 0 deletions src/main/java/net/vfyjxf/nechar/NechConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ public class NechConfig {
public static boolean EnableFIng2In = false;
public static boolean EnableFEng2En = false;
public static boolean EnableFU2V = false;
public static boolean enableIgnoreComma = false;
public static boolean enableVoltageSpecialSearchName = false;
public static boolean enableVoltageSpecialSearchTooltips = false;
public static Spell KeyboardType = Spell.QUANPIN;
public static String[] neiAllowedLanguages = new String[0];
public static String[] transformerRegExpAdditionalList = new String[0];
Expand Down Expand Up @@ -147,6 +150,23 @@ public static void loadConfig(File configFile) {
neiAllowedLanguages = config
.get("nei", "allowedLanguages", new String[] { "zh_CN", "zh_TW" }, "List of languages PinIn is used for")
.getStringList();
enableIgnoreComma = config
.get("search", "enableIgnoreComma", false, "Set to true to enable ignore comma between numbers")
.getBoolean();
enableVoltageSpecialSearchName = config
.get(
"search",
"enableVoltageSpecialSearchName",
false,
"!Slow! Set to true to search Voltage names separately for item names")
.getBoolean();
enableVoltageSpecialSearchTooltips = config
.get(
"search",
"enableVoltageSpecialSearchTooltips",
false,
"!Slow! Set to true to search Voltage names separately for tooltips")
.getBoolean();

if (config.hasChanged()) config.save();
}
Expand Down
Loading