Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ dependencies.lombok_version=1.18.38
## MagicLib
dependencies.magiclib_dependency=0.8.697-beta
dependencies.magiclib_version=0.8.697-beta
dependencies.pinin_version=1.6.0

# Gradle Plugins
architectury_loom_version=1.10-SNAPSHOT
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/com/plusls/MasaGadget/SharedConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ public class SharedConstants {
@Getter
private static final String modVersionType = VersionUtil.getVersionType(SharedConstants.modVersion);
@Getter
private static final MagicConfigManager configManager = GlobalConfigManager
.getConfigManager(SharedConstants.getModIdentifier());
private static final MagicConfigManager configManager = GlobalConfigManager.getConfigManager(SharedConstants.getModIdentifier());
@Getter
private static final MagicConfigHandler configHandler = new MagicConfigHandler(configManager, 1);
@Getter
Expand Down
41 changes: 41 additions & 0 deletions src/main/java/com/plusls/MasaGadget/game/Configs.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@

import com.google.common.collect.ImmutableList;
import com.plusls.MasaGadget.SharedConstants;
import com.plusls.MasaGadget.impl.mod_tweak.malilib.pinyinSouSuo.PinInHelper;
import com.plusls.MasaGadget.impl.mod_tweak.malilib.pinyinSouSuo.PinYinSouSuoKeyboard;
import com.plusls.MasaGadget.util.ModId;
import com.plusls.MasaGadget.util.PcaSyncProtocol;
import com.plusls.MasaGadget.util.SearchMobSpawnPointUtil;
import fi.dy.masa.malilib.config.options.ConfigBoolean;
import fi.dy.masa.malilib.interfaces.IValueChangeCallback;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.world.entity.Entity;
Expand Down Expand Up @@ -169,6 +173,33 @@ public class Configs {
@Config(category = ConfigCategory.MALILIB)
public static MagicConfigBoolean optimizeConfigWidgetSearch = Configs.cf.newConfigBoolean("optimizeConfigWidgetSearch", false);

@Config(category = ConfigCategory.MALILIB)
public static MagicConfigBoolean pinyinSouSuo = Configs.cf.newConfigBoolean("pinyinSouSuo", false);

@Config(category = ConfigCategory.MALILIB)
public static MagicConfigBoolean pinyinSouSuoFZh2Z = Configs.cf.newConfigBoolean("pinyinSouSuoFZh2Z", false);

@Config(category = ConfigCategory.MALILIB)
public static MagicConfigBoolean pinyinSouSuoFSh2S = Configs.cf.newConfigBoolean("pinyinSouSuoFSh2S", false);

@Config(category = ConfigCategory.MALILIB)
public static MagicConfigBoolean pinyinSouSuoFCh2C = Configs.cf.newConfigBoolean("pinyinSouSuoFCh2C", false);

@Config(category = ConfigCategory.MALILIB)
public static MagicConfigBoolean pinyinSouSuoFAng2An = Configs.cf.newConfigBoolean("pinyinSouSuoFAng2An", false);

@Config(category = ConfigCategory.MALILIB)
public static MagicConfigBoolean pinyinSouSuoFIng2In = Configs.cf.newConfigBoolean("pinyinSouSuoFIng2In", false);

@Config(category = ConfigCategory.MALILIB)
public static MagicConfigBoolean pinyinSouSuoFEng2En = Configs.cf.newConfigBoolean("pinyinSouSuoFEng2En", false);

@Config(category = ConfigCategory.MALILIB)
public static MagicConfigBoolean pinyinSouSuoFU2V = Configs.cf.newConfigBoolean("pinyinSouSuoFU2V", false);

@Config(category = ConfigCategory.MALILIB)
public static MagicConfigOptionList pinyinSouSuoKeyboard = Configs.cf.newConfigOptionList("pinyinSouSuoKeyboard", PinYinSouSuoKeyboard.QUANPIN);

@Config(category = ConfigCategory.MALILIB)
public static MagicConfigBoolean showOriginalConfigName = Configs.cf.newConfigBoolean("showOriginalConfigName", false);

Expand Down Expand Up @@ -297,6 +328,8 @@ public class Configs {
public static void init() {
Configs.cm.parseConfigClass(Configs.class);

IValueChangeCallback<ConfigBoolean> pinYinCallback = configBoolean -> PinInHelper.getInstance().commitConfig();

// Generic
MagicConfigManager.setHotkeyCallback(openConfigGui, ConfigGui::openGui, true);

Expand Down Expand Up @@ -330,6 +363,14 @@ public static void init() {
Configs.favoritesSupport.setValueChangeCallback(Configs::redrawConfigGui);
Configs.showOriginalConfigName.setValueChangeCallback(Configs::redrawConfigGui);
Configs.showOriginalConfigNameScale.setValueChangeCallback(Configs::redrawConfigGui);
Configs.pinyinSouSuo.setValueChangeCallback(pinYinCallback);
Configs.pinyinSouSuoFZh2Z.setValueChangeCallback(pinYinCallback);
Configs.pinyinSouSuoFSh2S.setValueChangeCallback(pinYinCallback);
Configs.pinyinSouSuoFCh2C.setValueChangeCallback(pinYinCallback);
Configs.pinyinSouSuoFAng2An.setValueChangeCallback(pinYinCallback);
Configs.pinyinSouSuoFIng2In.setValueChangeCallback(pinYinCallback);
Configs.pinyinSouSuoFEng2En.setValueChangeCallback(pinYinCallback);
Configs.pinyinSouSuoFU2V.setValueChangeCallback(pinYinCallback);
}

private static void redrawConfigGui(Object object) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.plusls.MasaGadget.impl.mod_tweak.malilib.pinyinSouSuo;

import com.google.common.collect.ImmutableMap;
import com.plusls.MasaGadget.game.Configs;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import me.towdium.pinin.Keyboard;
import me.towdium.pinin.PinIn;

import java.util.Map;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class PinInHelper {
@Getter(lazy = true)
private static final PinInHelper instance = new PinInHelper();
private static final Map<PinYinSouSuoKeyboard, Keyboard> keyboardMapping = ImmutableMap.<PinYinSouSuoKeyboard, Keyboard>builder()
.put(PinYinSouSuoKeyboard.QUANPIN, Keyboard.QUANPIN)
.put(PinYinSouSuoKeyboard.DAQIAN, Keyboard.DAQIAN)
.put(PinYinSouSuoKeyboard.XIAOHE, Keyboard.XIAOHE)
.put(PinYinSouSuoKeyboard.ZIRANMA, Keyboard.ZIRANMA)
.put(PinYinSouSuoKeyboard.SOUGOU, Keyboard.SOUGOU)
.put(PinYinSouSuoKeyboard.GUOBIAO, Keyboard.GUOBIAO)
.put(PinYinSouSuoKeyboard.MICROSOFT, Keyboard.MICROSOFT)
.put(PinYinSouSuoKeyboard.PINYINPP, Keyboard.PINYINPP)
.put(PinYinSouSuoKeyboard.ZIGUANG, Keyboard.ZIGUANG)
.build();

private final PinIn pinIn = new PinIn().config().accelerate(true).commit();

public void commitConfig() {
PinIn.Config config = this.pinIn.config();
config.keyboard(PinInHelper.keyboardMapping.getOrDefault((PinYinSouSuoKeyboard) Configs.pinyinSouSuoKeyboard.getOptionListValue(), Keyboard.QUANPIN));
config.fZh2Z(Configs.pinyinSouSuoFZh2Z.getBooleanValue());
config.fSh2S(Configs.pinyinSouSuoFSh2S.getBooleanValue());
config.fCh2C(Configs.pinyinSouSuoFCh2C.getBooleanValue());
config.fAng2An(Configs.pinyinSouSuoFAng2An.getBooleanValue());
config.fIng2In(Configs.pinyinSouSuoFIng2In.getBooleanValue());
config.fEng2En(Configs.pinyinSouSuoFEng2En.getBooleanValue());
config.fU2V(Configs.pinyinSouSuoFU2V.getBooleanValue());
config.commit();
}

public boolean contains(String s1, String s2) {
return this.pinIn.contains(s1, s2);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.plusls.MasaGadget.impl.mod_tweak.malilib.pinyinSouSuo;

import com.plusls.MasaGadget.SharedConstants;
import top.hendrixshen.magiclib.api.malilib.config.option.EnumOptionEntry;

public enum PinYinSouSuoKeyboard implements EnumOptionEntry {
QUANPIN,
DAQIAN,
XIAOHE,
ZIRANMA,
SOUGOU,
GUOBIAO,
MICROSOFT,
PINYINPP,
ZIGUANG;

public static final PinYinSouSuoKeyboard DEFAULT = PinYinSouSuoKeyboard.QUANPIN;

@Override
public EnumOptionEntry[] getAllValues() {
return PinYinSouSuoKeyboard.values();
}

@Override
public EnumOptionEntry getDefault() {
return PinYinSouSuoKeyboard.DEFAULT;
}

@Override
public String getTranslationPrefix() {
return SharedConstants.getModIdentifier().concat(".config.option.pinyinSousuoKeyboard");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.plusls.MasaGadget.mixin.mod_tweak.malilib.pinyinSouSuo;

import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import com.plusls.MasaGadget.game.Configs;
import com.plusls.MasaGadget.impl.mod_tweak.malilib.pinyinSouSuo.PinInHelper;
import fi.dy.masa.malilib.gui.widgets.WidgetListBase;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

@Mixin(value = WidgetListBase.class, remap = false)
public class MixinWidgetListBase {
@WrapOperation(
method = "matchesFilter(Ljava/lang/String;Ljava/lang/String;)Z",
at = @At(
value = "INVOKE",
target = "Ljava/lang/String;indexOf(Ljava/lang/String;)I"
)
)
private int patchMatchLogic(String instance, String str, Operation<Integer> original) {
int ret = original.call(instance, str);

if (Configs.pinyinSouSuo.getBooleanValue() && PinInHelper.getInstance().contains(instance, str)) {
ret += 1;
}

return ret;
}
}
39 changes: 39 additions & 0 deletions src/main/resources/assets/masa_gadget_mod/lang/en_us.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,45 @@ masa_gadget_mod:
optimizeConfigWidgetSearch:
name: optimizeConfigWidgetSearch
comment: Make search support uppercase, translate text, and can use §6modified§r to search modified config.
pinyinSouSuo:
name: pinyinSouSuo
comment: |-
Provide Hanyu Pinyin support for search bar.
This only works if the current game language is Chinese.
pinyinSouSuoFZh2Z:
name: pinyinSouSuoFZh2Z
comment: Fuzzy spelling zh <=> z with @config#pinyinSouSuo@.
pinyinSouSuoFSh2S:
name: pinyinSouSuoFSh2S
comment: Fuzzy spelling sh <=> s with @config#pinyinSouSuo@.
pinyinSouSuoFCh2C:
name: pinyinSouSuoFCh2C
comment: Fuzzy spelling ch <=> c with @config#pinyinSouSuo@.
pinyinSouSuoFAng2An:
name: pinyinSouSuoFAng2An
comment: Fuzzy spelling ang <=> an with @config#pinyinSouSuo@.
pinyinSouSuoFIng2In:
name: pinyinSouSuoFIng2In
comment: Fuzzy spelling ing <=> in with @config#pinyinSouSuo@.
pinyinSouSuoFEng2En:
name: pinyinSouSuoFEng2En
comment: Fuzzy spelling eng <=> en with @config#pinyinSouSuo@.
pinyinSouSuoFU2V:
name: pinyinSouSuoFU2V
comment: Fuzzy spelling u <=> v with @config#pinyinSouSuo@.
pinyinSouSuoKeyboard:
name: pinyinSouSuoKeyboard
comment: Keyboard for the checker to use with @config#pinyinSouSuo@.
value:
QUANPIN: QUANPIN
DAQIAN: DAQIAN
XIAOHE: XIAOHE
ZIRANMA: ZIRANMA
SOUGOU: SOUGOU
GUOBIAO: GUOBIAO
MICROSOFT: MICROSOFT
PINYINPP: PINYINPP
ZIGUANG: ZIGUANG
showOriginalConfigName:
name: showOriginalConfigName
comment: |
Expand Down
39 changes: 39 additions & 0 deletions src/main/resources/assets/masa_gadget_mod/lang/zh_cn.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,45 @@ masa_gadget_mod:
optimizeConfigWidgetSearch:
name: 优化配置搜索
comment: 支持忽略大小写,本地化文本,并且可以使用 §6modified§r 来搜索配置。
pinyinSouSuo:
name: 拼音搜索
comment: |-
为搜索栏提供拼音搜索支
这仅对当前游戏语言为中文系列语言有效.
pinyinSouSuoFZh2Z:
name: 拼音搜索-模糊拼写zh-z
comment: 使用@config#pinyinSouSuo@时启用模糊拼写 zh <=> z。
pinyinSouSuoFSh2S:
name: 拼音搜索-模糊拼写sh-s
comment: 使用@config#pinyinSouSuo@时启用模糊拼写 sh <=> s。
pinyinSouSuoFCh2C:
name: 拼音搜索-模糊拼写ch-c
comment: 使用@config#pinyinSouSuo@时启用模糊拼写 ch <=> c。
pinyinSouSuoFAng2An:
name: 拼音搜索-模糊拼写ang-an
comment: 使用@config#pinyinSouSuo@时启用模糊拼写 ang <=> an。
pinyinSouSuoFIng2In:
name: 拼音搜索-模糊拼写ing-in
comment: 使用@config#pinyinSouSuo@时启用模糊拼写 ing <=> in。
pinyinSouSuoFEng2En:
name: 拼音搜索-模糊拼写eng-en
comment: 使用@config#pinyinSouSuo@时启用模糊拼写 eng <=> en。
pinyinSouSuoFU2V:
name: 拼音搜索-模糊拼写u-v
comment: 使用@config#pinyinSouSuo@时启用模糊拼写 u <=> v。
pinyinSouSuoKeyboard:
name: 拼音搜索-键盘
comment: 使用@config#pinyinSouSuo@时检查器所用的键盘.
value:
QUANPIN: 全拼
DAQIAN: 大千式
XIAOHE: 小鹤
ZIRANMA: 自然码
SOUGOU: 搜狗
GUOBIAO: 国标
MICROSOFT: 微软
PINYINPP: 双拼
ZIGUANG: 紫光
showOriginalConfigName:
name: 显示原始配置名称
comment: |
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/masa_gadget_mod.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
"mod_tweak.malilib.fixGetInventoryType.MixinInventoryOverlay",
"mod_tweak.malilib.fixSearchbarHotkeyInput.MixinGuiBase",
"mod_tweak.malilib.optimizeConfigWidgetSearch.MixinWidgetListConfigOptions",
"mod_tweak.malilib.pinyinSouSuo.MixinWidgetListBase",
"mod_tweak.malilib.showOriginalConfigName.MixinWidgetConfigOption",
"mod_tweak.malilib.showOriginalConfigName.MixinWidgetListConfigOptions",
"mod_tweak.minihud.backportI18nSupport.MixinInfoToggle",
Expand Down
1 change: 1 addition & 0 deletions versions/1.16.5-fabric/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ dependencies {

// Dependency
modApi(annotationProcessor("top.hendrixshen.magiclib:magiclib-all-${project.name}:${project.property("dependencies.magiclib_version")}"))
modImplementation(include("com.github.Towdium:PinIn:${project.property("dependencies.pinin_version")}"))

switch (modPlatform) {
case "fabric":
Expand Down