fix: 取消mixin部分非混淆字段的混淆映射

This commit is contained in:
C-H716 2025-09-19 08:22:35 +08:00
parent 121828d8f1
commit 49b0ef0726
17 changed files with 44 additions and 33 deletions

View File

@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
loom.platform = forge loom.platform = forge
# Mod properties # Mod properties
mod_version = 1.4.2 mod_version = 1.4.2-fix
maven_group = com.extendedae_plus maven_group = com.extendedae_plus
archives_name = extendedae_plus archives_name = extendedae_plus

View File

@ -7,6 +7,6 @@ import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(AdvPatternProviderMenu.class) @Mixin(AdvPatternProviderMenu.class)
public interface AdvPatternProviderMenuAdvancedAccessor { public interface AdvPatternProviderMenuAdvancedAccessor {
@Accessor("logic") @Accessor(value = "logic", remap = false)
AdvPatternProviderLogic eap$logic(); AdvPatternProviderLogic eap$logic();
} }

View File

@ -9,6 +9,7 @@ import net.minecraft.world.inventory.MenuType;
import net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogic; import net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogic;
import net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogicHost; import net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogicHost;
import net.pedroksl.advanced_ae.gui.advpatternprovider.AdvPatternProviderMenu; import net.pedroksl.advanced_ae.gui.advpatternprovider.AdvPatternProviderMenu;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.Unique;
@ -18,7 +19,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(AdvPatternProviderMenu.class) @Mixin(AdvPatternProviderMenu.class)
public abstract class AdvPatternProviderMenuAdvancedMixin implements PatternProviderMenuAdvancedSync { public abstract class AdvPatternProviderMenuAdvancedMixin implements PatternProviderMenuAdvancedSync {
@Shadow @Final
@Shadow(remap = false)
protected AdvPatternProviderLogic logic; protected AdvPatternProviderLogic logic;
// 选择一个未占用的 GUI 同步 idAE2 已用到 7这里使用 21 以避冲突 // 选择一个未占用的 GUI 同步 idAE2 已用到 7这里使用 21 以避冲突
@ -38,7 +40,7 @@ public abstract class AdvPatternProviderMenuAdvancedMixin implements PatternProv
} }
// 构造器尾注入public ctor // 构造器尾注入public ctor
@Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lnet/pedroksl/advanced_ae/common/logic/AdvPatternProviderLogicHost;)V", at = @At("TAIL")) @Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lnet/pedroksl/advanced_ae/common/logic/AdvPatternProviderLogicHost;)V", at = @At("TAIL"), remap = false)
private void eap$initAdvancedSync_Public(int id, Inventory playerInventory, AdvPatternProviderLogicHost host, CallbackInfo ci) { private void eap$initAdvancedSync_Public(int id, Inventory playerInventory, AdvPatternProviderLogicHost host, CallbackInfo ci) {
try { try {
var l = this.logic; var l = this.logic;
@ -49,7 +51,7 @@ public abstract class AdvPatternProviderMenuAdvancedMixin implements PatternProv
} }
// 构造器尾注入protected ctor with MenuType // 构造器尾注入protected ctor with MenuType
@Inject(method = "<init>(Lnet/minecraft/world/inventory/MenuType;ILnet/minecraft/world/entity/player/Inventory;Lnet/pedroksl/advanced_ae/common/logic/AdvPatternProviderLogicHost;)V", at = @At("TAIL")) @Inject(method = "<init>(Lnet/minecraft/world/inventory/MenuType;ILnet/minecraft/world/entity/player/Inventory;Lnet/pedroksl/advanced_ae/common/logic/AdvPatternProviderLogicHost;)V", at = @At("TAIL"), remap = false)
private void eap$initAdvancedSync_Protected(MenuType menuType, int id, Inventory playerInventory, AdvPatternProviderLogicHost host, CallbackInfo ci) { private void eap$initAdvancedSync_Protected(MenuType menuType, int id, Inventory playerInventory, AdvPatternProviderLogicHost host, CallbackInfo ci) {
try { try {
var l = this.logic; var l = this.logic;

View File

@ -9,6 +9,7 @@ import net.minecraft.world.inventory.MenuType;
import net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogic; import net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogic;
import net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogicHost; import net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogicHost;
import net.pedroksl.advanced_ae.gui.advpatternprovider.AdvPatternProviderMenu; import net.pedroksl.advanced_ae.gui.advpatternprovider.AdvPatternProviderMenu;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.Unique;
@ -18,7 +19,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(AdvPatternProviderMenu.class) @Mixin(AdvPatternProviderMenu.class)
public abstract class AdvPatternProviderMenuDoublingMixin implements PatternProviderMenuDoublingSync { public abstract class AdvPatternProviderMenuDoublingMixin implements PatternProviderMenuDoublingSync {
@Shadow @Final
@Shadow(remap = false)
protected AdvPatternProviderLogic logic; protected AdvPatternProviderLogic logic;
@Unique @Unique
@ -35,7 +37,7 @@ public abstract class AdvPatternProviderMenuDoublingMixin implements PatternProv
} }
} }
@Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lnet/pedroksl/advanced_ae/common/logic/AdvPatternProviderLogicHost;)V", at = @At("TAIL")) @Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lnet/pedroksl/advanced_ae/common/logic/AdvPatternProviderLogicHost;)V", at = @At("TAIL"), remap = false)
private void eap$initSmartSync_Public(int id, Inventory playerInventory, AdvPatternProviderLogicHost host, CallbackInfo ci) { private void eap$initSmartSync_Public(int id, Inventory playerInventory, AdvPatternProviderLogicHost host, CallbackInfo ci) {
try { try {
var l = this.logic; var l = this.logic;
@ -45,7 +47,7 @@ public abstract class AdvPatternProviderMenuDoublingMixin implements PatternProv
} catch (Throwable ignored) {} } catch (Throwable ignored) {}
} }
@Inject(method = "<init>(Lnet/minecraft/world/inventory/MenuType;ILnet/minecraft/world/entity/player/Inventory;Lnet/pedroksl/advanced_ae/common/logic/AdvPatternProviderLogicHost;)V", at = @At("TAIL")) @Inject(method = "<init>(Lnet/minecraft/world/inventory/MenuType;ILnet/minecraft/world/entity/player/Inventory;Lnet/pedroksl/advanced_ae/common/logic/AdvPatternProviderLogicHost;)V", at = @At("TAIL"), remap = false)
private void eap$initSmartSync_Protected(MenuType menuType, int id, Inventory playerInventory, AdvPatternProviderLogicHost host, CallbackInfo ci) { private void eap$initSmartSync_Protected(MenuType menuType, int id, Inventory playerInventory, AdvPatternProviderLogicHost host, CallbackInfo ci) {
try { try {
var l = this.logic; var l = this.logic;

View File

@ -10,23 +10,23 @@ import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(MEStorageMenu.class) @Mixin(MEStorageMenu.class)
public interface MEStorageMenuAccessor { public interface MEStorageMenuAccessor {
@Accessor("storage") @Accessor(value = "storage", remap = false)
@Nullable @Nullable
MEStorage getStorage(); MEStorage getStorage();
@Accessor("powerSource") @Accessor(value = "powerSource", remap = false)
@Nullable @Nullable
IEnergySource getPowerSource(); IEnergySource getPowerSource();
@Accessor("hasPower") @Accessor(value = "hasPower", remap = false)
boolean getHasPower(); boolean getHasPower();
// Access client-side config manager mirror used for syncing settings // Access client-side config manager mirror used for syncing settings
@Accessor("clientCM") @Accessor(value = "clientCM", remap = false)
IConfigManager getClientCM(); IConfigManager getClientCM();
// Access server-side config manager // Access server-side config manager
@Accessor("serverCM") @Accessor(value = "serverCM", remap = false)
@Nullable @Nullable
IConfigManager getServerCM(); IConfigManager getServerCM();
} }

View File

@ -7,9 +7,9 @@ import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(PatternEncodingTermMenu.class) @Mixin(PatternEncodingTermMenu.class)
public interface PatternEncodingTermMenuAccessor { public interface PatternEncodingTermMenuAccessor {
@Accessor("encodedPatternSlot") @Accessor(value = "encodedPatternSlot",remap = false)
RestrictedInputSlot eap$getEncodedPatternSlot(); RestrictedInputSlot eap$getEncodedPatternSlot();
@Accessor("blankPatternSlot") @Accessor(value = "blankPatternSlot",remap = false)
RestrictedInputSlot eap$getBlankPatternSlot(); RestrictedInputSlot eap$getBlankPatternSlot();
} }

View File

@ -8,9 +8,9 @@ import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(PatternProviderLogic.class) @Mixin(PatternProviderLogic.class)
public interface PatternProviderLogicAccessor { public interface PatternProviderLogicAccessor {
@Accessor("host") @Accessor(value = "host", remap = false)
PatternProviderLogicHost eap$host(); PatternProviderLogicHost eap$host();
@Accessor("mainNode") @Accessor(value = "mainNode", remap = false)
IManagedGridNode eap$mainNode(); IManagedGridNode eap$mainNode();
} }

View File

@ -9,6 +9,6 @@ import java.util.Set;
@Mixin(PatternProviderLogic.class) @Mixin(PatternProviderLogic.class)
public interface PatternProviderLogicPatternInputsAccessor { public interface PatternProviderLogicPatternInputsAccessor {
@Accessor("patternInputs") @Accessor(value = "patternInputs",remap = false)
Set<AEKey> eap$patternInputs(); Set<AEKey> eap$patternInputs();
} }

View File

@ -7,6 +7,6 @@ import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(PatternProviderMenu.class) @Mixin(PatternProviderMenu.class)
public interface PatternProviderMenuAdvancedAccessor { public interface PatternProviderMenuAdvancedAccessor {
@Accessor("logic") @Accessor(value = "logic", remap = false)
PatternProviderLogic eap$logic(); PatternProviderLogic eap$logic();
} }

View File

@ -7,6 +7,6 @@ import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(CraftingTreeNode.class) @Mixin(CraftingTreeNode.class)
public interface CraftingTreeNodeAccessor { public interface CraftingTreeNodeAccessor {
@Accessor("what") @Accessor(value = "what", remap = false)
AEKey eap$getWhat(); AEKey eap$getWhat();
} }

View File

@ -33,7 +33,8 @@ public abstract class CraftingTreeProcessMixin {
@ModifyVariable( @ModifyVariable(
method = "<init>(Lappeng/api/networking/crafting/ICraftingService;Lappeng/crafting/CraftingCalculation;Lappeng/api/crafting/IPatternDetails;Lappeng/crafting/CraftingTreeNode;)V", method = "<init>(Lappeng/api/networking/crafting/ICraftingService;Lappeng/crafting/CraftingCalculation;Lappeng/api/crafting/IPatternDetails;Lappeng/crafting/CraftingTreeNode;)V",
at = @At("HEAD"), at = @At("HEAD"),
argsOnly = true argsOnly = true,
remap = false
) )
private static IPatternDetails eap$replaceDetailsAtHead(IPatternDetails original, ICraftingService cc, CraftingCalculation job, IPatternDetails details, CraftingTreeNode craftingTreeNode) { private static IPatternDetails eap$replaceDetailsAtHead(IPatternDetails original, ICraftingService cc, CraftingCalculation job, IPatternDetails details, CraftingTreeNode craftingTreeNode) {
try { try {

View File

@ -312,7 +312,7 @@ public abstract class AEBaseScreenMixin {
} }
@Shadow @Shadow(remap = false)
protected void setTextContent(String id, Component content) {}; protected void setTextContent(String id, Component content) {};
@Inject(method = "updateBeforeRender", at = @At("RETURN"), remap = false) @Inject(method = "updateBeforeRender", at = @At("RETURN"), remap = false)

View File

@ -14,6 +14,7 @@ import appeng.menu.slot.RestrictedInputSlot;
import com.extendedae_plus.mixin.ae2.accessor.MEStorageMenuAccessor; import com.extendedae_plus.mixin.ae2.accessor.MEStorageMenuAccessor;
import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.inventory.MenuType; import net.minecraft.world.inventory.MenuType;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.Unique;
@ -28,7 +29,8 @@ public abstract class PatternEncodingTermMenuMixin {
@Unique @Unique
private boolean eap$blankAutoFilled = false; private boolean eap$blankAutoFilled = false;
@Shadow @Final
@Shadow(remap = false)
private RestrictedInputSlot blankPatternSlot; private RestrictedInputSlot blankPatternSlot;
@Unique @Unique
@ -87,7 +89,7 @@ public abstract class PatternEncodingTermMenuMixin {
} }
@Inject(method = "<init>(Lnet/minecraft/world/inventory/MenuType;ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/IPatternTerminalMenuHost;Z)V", @Inject(method = "<init>(Lnet/minecraft/world/inventory/MenuType;ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/IPatternTerminalMenuHost;Z)V",
at = @At("TAIL")) at = @At("TAIL"), remap = false)
private void eap$autoFillBlankPattern(MenuType<?> menuType, int id, Inventory ip, private void eap$autoFillBlankPattern(MenuType<?> menuType, int id, Inventory ip,
IPatternTerminalMenuHost host, boolean bindInventory, IPatternTerminalMenuHost host, boolean bindInventory,
CallbackInfo ci) { CallbackInfo ci) {
@ -95,7 +97,7 @@ public abstract class PatternEncodingTermMenuMixin {
} }
@Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/IPatternTerminalMenuHost;)V", @Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/IPatternTerminalMenuHost;)V",
at = @At("TAIL")) at = @At("TAIL"), remap = false)
private void eap$autoFillCtor3(int id, Inventory ip, IPatternTerminalMenuHost host, CallbackInfo ci) { private void eap$autoFillCtor3(int id, Inventory ip, IPatternTerminalMenuHost host, CallbackInfo ci) {
eap$tryFill(host, ip); eap$tryFill(host, ip);
} }

View File

@ -9,6 +9,7 @@ import com.extendedae_plus.api.AdvancedBlockingHolder;
import com.extendedae_plus.api.PatternProviderMenuAdvancedSync; import com.extendedae_plus.api.PatternProviderMenuAdvancedSync;
import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.inventory.MenuType; import net.minecraft.world.inventory.MenuType;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.Unique;
@ -20,7 +21,8 @@ import static com.extendedae_plus.util.ExtendedAELogger.LOGGER;
@Mixin(PatternProviderMenu.class) @Mixin(PatternProviderMenu.class)
public abstract class PatternProviderMenuAdvancedMixin implements PatternProviderMenuAdvancedSync { public abstract class PatternProviderMenuAdvancedMixin implements PatternProviderMenuAdvancedSync {
@Shadow @Final
@Shadow(remap = false)
protected PatternProviderLogic logic; protected PatternProviderLogic logic;
// 选择一个未占用的 GUI 同步 idAE2 已用到 7这里使用 20 以避冲突 // 选择一个未占用的 GUI 同步 idAE2 已用到 7这里使用 20 以避冲突
@ -40,7 +42,7 @@ public abstract class PatternProviderMenuAdvancedMixin implements PatternProvide
} }
// 构造器尾注入public ctor // 构造器尾注入public ctor
@Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/patternprovider/PatternProviderLogicHost;)V", at = @At("TAIL")) @Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/patternprovider/PatternProviderLogicHost;)V", at = @At("TAIL"), remap = false)
private void eap$initAdvancedSync_Public(int id, Inventory playerInventory, PatternProviderLogicHost host, CallbackInfo ci) { private void eap$initAdvancedSync_Public(int id, Inventory playerInventory, PatternProviderLogicHost host, CallbackInfo ci) {
try { try {
var l = this.logic; var l = this.logic;
@ -51,7 +53,7 @@ public abstract class PatternProviderMenuAdvancedMixin implements PatternProvide
} }
// 构造器尾注入protected ctor with MenuType // 构造器尾注入protected ctor with MenuType
@Inject(method = "<init>(Lnet/minecraft/world/inventory/MenuType;ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/patternprovider/PatternProviderLogicHost;)V", at = @At("TAIL")) @Inject(method = "<init>(Lnet/minecraft/world/inventory/MenuType;ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/patternprovider/PatternProviderLogicHost;)V", at = @At("TAIL"), remap = false)
private void eap$initAdvancedSync_Protected(MenuType<? extends PatternProviderMenu> menuType, int id, Inventory playerInventory, PatternProviderLogicHost host, CallbackInfo ci) { private void eap$initAdvancedSync_Protected(MenuType<? extends PatternProviderMenu> menuType, int id, Inventory playerInventory, PatternProviderLogicHost host, CallbackInfo ci) {
try { try {
var l = this.logic; var l = this.logic;

View File

@ -9,6 +9,7 @@ import com.extendedae_plus.api.PatternProviderMenuDoublingSync;
import com.extendedae_plus.api.SmartDoublingHolder; import com.extendedae_plus.api.SmartDoublingHolder;
import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.inventory.MenuType; import net.minecraft.world.inventory.MenuType;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.Unique;
@ -20,7 +21,8 @@ import static com.extendedae_plus.util.ExtendedAELogger.LOGGER;
@Mixin(PatternProviderMenu.class) @Mixin(PatternProviderMenu.class)
public abstract class PatternProviderMenuDoublingMixin implements PatternProviderMenuDoublingSync { public abstract class PatternProviderMenuDoublingMixin implements PatternProviderMenuDoublingSync {
@Shadow @Final
@Shadow(remap = false)
protected PatternProviderLogic logic; protected PatternProviderLogic logic;
@Unique @Unique
@ -37,7 +39,7 @@ public abstract class PatternProviderMenuDoublingMixin implements PatternProvide
} }
} }
@Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/patternprovider/PatternProviderLogicHost;)V", at = @At("TAIL")) @Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/patternprovider/PatternProviderLogicHost;)V", at = @At("TAIL"), remap = false)
private void eap$initSmartSync_Public(int id, Inventory playerInventory, PatternProviderLogicHost host, CallbackInfo ci) { private void eap$initSmartSync_Public(int id, Inventory playerInventory, PatternProviderLogicHost host, CallbackInfo ci) {
try { try {
var l = this.logic; var l = this.logic;
@ -49,7 +51,7 @@ public abstract class PatternProviderMenuDoublingMixin implements PatternProvide
} }
} }
@Inject(method = "<init>(Lnet/minecraft/world/inventory/MenuType;ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/patternprovider/PatternProviderLogicHost;)V", at = @At("TAIL")) @Inject(method = "<init>(Lnet/minecraft/world/inventory/MenuType;ILnet/minecraft/world/entity/player/Inventory;Lappeng/helpers/patternprovider/PatternProviderLogicHost;)V", at = @At("TAIL"), remap = false)
private void eap$initSmartSync_Protected(MenuType<? extends PatternProviderMenu> menuType, int id, Inventory playerInventory, PatternProviderLogicHost host, CallbackInfo ci) { private void eap$initSmartSync_Protected(MenuType<? extends PatternProviderMenu> menuType, int id, Inventory playerInventory, PatternProviderLogicHost host, CallbackInfo ci) {
try { try {
var l = this.logic; var l = this.logic;

View File

@ -32,7 +32,7 @@ public abstract class ContainerWirelessExPatternTerminalMixin implements IAction
private Player epp$player; private Player epp$player;
// 明确目标构造签名<init>(int, Inventory, HostWirelessExPAT) // 明确目标构造签名<init>(int, Inventory, HostWirelessExPAT)
@Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lcom/glodblock/github/extendedae/common/me/itemhost/HostWirelessExPAT;)V", at = @At("TAIL"), require = 0) @Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lcom/glodblock/github/extendedae/common/me/itemhost/HostWirelessExPAT;)V", at = @At("TAIL"), require = 0, remap = false)
private void init(int id, net.minecraft.world.entity.player.Inventory playerInventory, HostWirelessExPAT host, CallbackInfo ci) { private void init(int id, net.minecraft.world.entity.player.Inventory playerInventory, HostWirelessExPAT host, CallbackInfo ci) {
this.epp$player = playerInventory.player; this.epp$player = playerInventory.player;
// 注册上传动作参数顺序必须与客户端 CGenericPacket 保持一致 // 注册上传动作参数顺序必须与客户端 CGenericPacket 保持一致

View File

@ -7,6 +7,6 @@ import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(BookmarkOverlay.class) @Mixin(BookmarkOverlay.class)
public interface BookmarkOverlayAccessor { public interface BookmarkOverlayAccessor {
@Accessor("bookmarkList") @Accessor(value = "bookmarkList", remap = false)
BookmarkList eap$getBookmarkList(); BookmarkList eap$getBookmarkList();
} }