bassbone
This commit is contained in:
parent
4f122133ce
commit
779e280b87
|
@ -7,7 +7,7 @@ import org.osgi.service.component.annotations.Component;
|
||||||
import org.osgi.service.component.annotations.Deactivate;
|
import org.osgi.service.component.annotations.Deactivate;
|
||||||
import org.osgi.service.component.annotations.Reference;
|
import org.osgi.service.component.annotations.Reference;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4LocaleService;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4LocaleService;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import java.util.ResourceBundle;
|
||||||
|
|
||||||
import imgui.ImGui;
|
import imgui.ImGui;
|
||||||
import imgui.type.ImInt;
|
import imgui.type.ImInt;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||||
|
|
|
@ -9,7 +9,7 @@ import org.osgi.service.component.annotations.Reference;
|
||||||
|
|
||||||
import love.distributedrebirth.gdxapp4d.app.glyphdemo.apps.DemoUnicodePlaneDeskApp;
|
import love.distributedrebirth.gdxapp4d.app.glyphdemo.apps.DemoUnicodePlaneDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.app.glyphdemo.apps.DemoUnitConverterDeskApp;
|
import love.distributedrebirth.gdxapp4d.app.glyphdemo.apps.DemoUnitConverterDeskApp;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.app.glyphdemo.apps.DemoGlyphSetDeskApp;
|
import love.distributedrebirth.gdxapp4d.app.glyphdemo.apps.DemoGlyphSetDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.app.glyphdemo.apps.DemoNumberPartDeskApp;
|
import love.distributedrebirth.gdxapp4d.app.glyphdemo.apps.DemoNumberPartDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
||||||
|
|
|
@ -5,7 +5,7 @@ import java.util.ResourceBundle;
|
||||||
import imgui.ImGui;
|
import imgui.ImGui;
|
||||||
import imgui.flag.ImGuiTableFlags;
|
import imgui.flag.ImGuiTableFlags;
|
||||||
import imgui.type.ImBoolean;
|
import imgui.type.ImBoolean;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||||
|
|
|
@ -8,7 +8,7 @@ import imgui.ImGui;
|
||||||
import imgui.flag.ImGuiTableFlags;
|
import imgui.flag.ImGuiTableFlags;
|
||||||
import imgui.type.ImBoolean;
|
import imgui.type.ImBoolean;
|
||||||
import imgui.type.ImInt;
|
import imgui.type.ImInt;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||||
|
@ -58,11 +58,11 @@ public class DemoNumberPartDeskApp extends AbstractDeskApp implements DeskAppRen
|
||||||
|
|
||||||
ImGui.text(getTxt("selectName"));
|
ImGui.text(getTxt("selectName"));
|
||||||
ImGui.sameLine();
|
ImGui.sameLine();
|
||||||
ImGui.text(baseParts[0].BãßInfoNaam());
|
ImGui.text(baseParts[0].BãßExportNaam());
|
||||||
|
|
||||||
ImGui.text(getTxt("selectPurpose"));
|
ImGui.text(getTxt("selectPurpose"));
|
||||||
ImGui.sameLine();
|
ImGui.sameLine();
|
||||||
ImGui.text(baseParts[0].BãßInfoDoel());
|
ImGui.text(baseParts[0].BãßClazzDoel());
|
||||||
|
|
||||||
ImGui.checkbox(getTxt("showBase10"), showBase10);
|
ImGui.checkbox(getTxt("showBase10"), showBase10);
|
||||||
ImGui.checkbox(getTxt("showBase16"), showBase16);
|
ImGui.checkbox(getTxt("showBase16"), showBase16);
|
||||||
|
|
|
@ -5,7 +5,7 @@ import java.util.ResourceBundle;
|
||||||
import imgui.ImGui;
|
import imgui.ImGui;
|
||||||
import imgui.flag.ImGuiTableFlags;
|
import imgui.flag.ImGuiTableFlags;
|
||||||
import imgui.type.ImBoolean;
|
import imgui.type.ImBoolean;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||||
|
|
|
@ -13,7 +13,7 @@ import imgui.ImGui;
|
||||||
import imgui.flag.ImGuiTableFlags;
|
import imgui.flag.ImGuiTableFlags;
|
||||||
import imgui.type.ImDouble;
|
import imgui.type.ImDouble;
|
||||||
import imgui.type.ImInt;
|
import imgui.type.ImInt;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||||
|
|
|
@ -5,7 +5,7 @@ import org.osgi.service.component.annotations.Component;
|
||||||
import org.osgi.service.component.annotations.Deactivate;
|
import org.osgi.service.component.annotations.Deactivate;
|
||||||
import org.osgi.service.component.annotations.Reference;
|
import org.osgi.service.component.annotations.Reference;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppLauncher;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppLauncher;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import java.util.List;
|
||||||
import imgui.ImGui;
|
import imgui.ImGui;
|
||||||
import imgui.flag.ImGuiTableFlags;
|
import imgui.flag.ImGuiTableFlags;
|
||||||
import imgui.type.ImInt;
|
import imgui.type.ImInt;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||||
|
|
|
@ -5,7 +5,7 @@ import org.osgi.service.component.annotations.Component;
|
||||||
import org.osgi.service.component.annotations.Deactivate;
|
import org.osgi.service.component.annotations.Deactivate;
|
||||||
import org.osgi.service.component.annotations.Reference;
|
import org.osgi.service.component.annotations.Reference;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
|
||||||
|
|
|
@ -12,7 +12,7 @@ import com.badlogic.gdx.files.FileHandle;
|
||||||
import imgui.ImGui;
|
import imgui.ImGui;
|
||||||
import imgui.flag.ImGuiTableFlags;
|
import imgui.flag.ImGuiTableFlags;
|
||||||
import imgui.type.ImString;
|
import imgui.type.ImString;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
package love.distributedrebirth.gdxapp4d.app.notepad;
|
package love.distributedrebirth.gdxapp4d.app.notepad;
|
||||||
|
|
||||||
|
import org.osgi.framework.Bundle;
|
||||||
|
import org.osgi.framework.BundleContext;
|
||||||
|
import org.osgi.framework.FrameworkUtil;
|
||||||
import org.osgi.service.component.annotations.Activate;
|
import org.osgi.service.component.annotations.Activate;
|
||||||
import org.osgi.service.component.annotations.Component;
|
import org.osgi.service.component.annotations.Component;
|
||||||
import org.osgi.service.component.annotations.Deactivate;
|
import org.osgi.service.component.annotations.Deactivate;
|
||||||
import org.osgi.service.component.annotations.Reference;
|
import org.osgi.service.component.annotations.Reference;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
||||||
|
@ -28,7 +31,9 @@ public class NotepadComponent {
|
||||||
private final DeskAppLauncher launcher;
|
private final DeskAppLauncher launcher;
|
||||||
|
|
||||||
public NotepadComponent() {
|
public NotepadComponent() {
|
||||||
launcher = new DeskAppLauncher(DeskAppMenuSection.EDITORS, "Notepad", () -> new NotepadDeskApp(unicode4DService));
|
Bundle bundle = FrameworkUtil.getBundle(NotepadComponent.class);
|
||||||
|
BundleContext context = bundle.getBundleContext();
|
||||||
|
launcher = new DeskAppLauncher(DeskAppMenuSection.EDITORS, "Notepad", () -> new NotepadDeskApp(context, unicode4DService));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Activate
|
@Activate
|
||||||
|
|
|
@ -2,12 +2,19 @@ package love.distributedrebirth.gdxapp4d.app.notepad;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import org.osgi.framework.BundleContext;
|
||||||
|
import org.osgi.framework.ServiceReference;
|
||||||
|
|
||||||
import imgui.ImDrawList;
|
import imgui.ImDrawList;
|
||||||
import imgui.ImGui;
|
import imgui.ImGui;
|
||||||
import imgui.ImVec2;
|
import imgui.ImVec2;
|
||||||
import imgui.type.ImInt;
|
import imgui.type.ImInt;
|
||||||
import love.distributedrebirth.bassboonyd.Bãß;
|
import love.distributedrebirth.bassboon.Bãß;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.DefaultBãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderEgg注;
|
||||||
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||||
|
@ -17,9 +24,9 @@ import love.distributedrebirth.unicode4d.draw.DrawCharacter;
|
||||||
import love.distributedrebirth.unicode4d.draw.ImCharacter;
|
import love.distributedrebirth.unicode4d.draw.ImCharacter;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class NotepadDeskApp extends AbstractDeskApp implements DeskAppRenderer {
|
public class NotepadDeskApp extends AbstractDeskApp implements DeskAppRenderer, DefaultBãßBȍőnʸᴰ<NotepadDeskApp> {
|
||||||
|
|
||||||
private final VrGem4Unicode4DService unicode4DService;
|
//private final VrGem4Unicode4DService unicode4DService;
|
||||||
private final int gridWidth = 120;
|
private final int gridWidth = 120;
|
||||||
private final int gridHeight = 40;
|
private final int gridHeight = 40;
|
||||||
private final String gridChars;
|
private final String gridChars;
|
||||||
|
@ -36,8 +43,36 @@ public class NotepadDeskApp extends AbstractDeskApp implements DeskAppRenderer {
|
||||||
UnicodePlane.TAI_XUAN_JING_SYMBOLS
|
UnicodePlane.TAI_XUAN_JING_SYMBOLS
|
||||||
};
|
};
|
||||||
|
|
||||||
public NotepadDeskApp(VrGem4Unicode4DService unicode4DService) {
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<DefaultBãßBȍőnʸᴰ<?>> {
|
||||||
this.unicode4DService = unicode4DService;
|
private static final String GHOST_BUNDLE = "bundle";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(DefaultBãßBȍőnʸᴰ<?> boon) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnSpiderEgg注()
|
||||||
|
public VrGem4Unicode4DService locateVrGem4Unicode4DService(DefaultBãßBȍőnʸᴰ<NotepadDeskApp> boon) {
|
||||||
|
Class<?> eggType = VrGem4Unicode4DService.class;
|
||||||
|
|
||||||
|
BundleContext context = boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_OBJ(GHOST_BUNDLE, BundleContext.class);
|
||||||
|
ServiceReference<?> serviceRef = context.getServiceReference(eggType);
|
||||||
|
Object service = context.getService(serviceRef);
|
||||||
|
|
||||||
|
return (VrGem4Unicode4DService)service;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@BãßBȍőnSpiderWire注()
|
||||||
|
private VrGem4Unicode4DService unicode4DService;
|
||||||
|
|
||||||
|
public NotepadDeskApp(BundleContext context, VrGem4Unicode4DService unicode4DService3) {
|
||||||
|
|
||||||
|
toBBC().UNHOLY_SPELL(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(Ꝑŕḯṿª₮ḕ.GHOST_BUNDLE, context); // tmp test
|
||||||
|
Bãß.石棺ʸᴰ.魎ᴵⁿᶦᵗ(this);
|
||||||
|
//this.unicode4DService = unicode4DService;
|
||||||
|
|
||||||
this.gridBuffer = new int[gridHeight][gridWidth];
|
this.gridBuffer = new int[gridHeight][gridWidth];
|
||||||
this.gridRank = new int[gridWidth];
|
this.gridRank = new int[gridWidth];
|
||||||
this.random = new Random();
|
this.random = new Random();
|
||||||
|
|
|
@ -8,7 +8,7 @@ import org.osgi.service.component.annotations.Component;
|
||||||
import org.osgi.service.component.annotations.Deactivate;
|
import org.osgi.service.component.annotations.Deactivate;
|
||||||
import org.osgi.service.component.annotations.Reference;
|
import org.osgi.service.component.annotations.Reference;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip;
|
||||||
|
|
|
@ -12,7 +12,7 @@ import imgui.ImGui;
|
||||||
import imgui.flag.ImGuiSelectableFlags;
|
import imgui.flag.ImGuiSelectableFlags;
|
||||||
import imgui.flag.ImGuiTableColumnFlags;
|
import imgui.flag.ImGuiTableColumnFlags;
|
||||||
import imgui.flag.ImGuiTableFlags;
|
import imgui.flag.ImGuiTableFlags;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.app.tosamp.music.MusicManager;
|
import love.distributedrebirth.gdxapp4d.app.tosamp.music.MusicManager;
|
||||||
import love.distributedrebirth.gdxapp4d.app.tosamp.music.MusicSong;
|
import love.distributedrebirth.gdxapp4d.app.tosamp.music.MusicSong;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip;
|
||||||
|
|
|
@ -9,7 +9,7 @@ import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class M3UParser {
|
public class M3UParser {
|
||||||
|
|
|
@ -13,7 +13,7 @@ import com.badlogic.gdx.audio.Music;
|
||||||
import com.badlogic.gdx.audio.Music.OnCompletionListener;
|
import com.badlogic.gdx.audio.Music.OnCompletionListener;
|
||||||
import com.badlogic.gdx.files.FileHandle;
|
import com.badlogic.gdx.files.FileHandle;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.app.tosamp.music.M3UParser.M3UPlaylist;
|
import love.distributedrebirth.gdxapp4d.app.tosamp.music.M3UParser.M3UPlaylist;
|
||||||
import love.distributedrebirth.gdxapp4d.app.tosamp.music.M3UParser.M3UTrack;
|
import love.distributedrebirth.gdxapp4d.app.tosamp.music.M3UParser.M3UTrack;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip;
|
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip;
|
||||||
|
|
|
@ -2,7 +2,7 @@ package love.distributedrebirth.gdxapp4d.app.tosamp.music;
|
||||||
|
|
||||||
import com.badlogic.gdx.files.FileHandle;
|
import com.badlogic.gdx.files.FileHandle;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The music with the (file) name.
|
* The music with the (file) name.
|
||||||
|
|
|
@ -3,7 +3,7 @@ package love.distributedrebirth.gdxapp4d.boot.desktop;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Desktop game app base config.
|
* Desktop game app base config.
|
||||||
|
|
|
@ -6,7 +6,7 @@ import com.badlogic.gdx.Files.FileType;
|
||||||
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
|
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
|
||||||
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
|
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.gdxapp4d.tos4.GDXAppTos4;
|
import love.distributedrebirth.gdxapp4d.tos4.GDXAppTos4;
|
||||||
import net.spookygames.gdx.nativefilechooser.desktop.DesktopFileChooser;
|
import net.spookygames.gdx.nativefilechooser.desktop.DesktopFileChooser;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.basic4d;
|
package love.distributedrebirth.basic4d;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class BasicRuntime {
|
public class BasicRuntime {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.basic4d.lang;
|
package love.distributedrebirth.basic4d.lang;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class BasicAnnotationʷᴰ {
|
public class BasicAnnotationʷᴰ {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.basic4d.lang;
|
package love.distributedrebirth.basic4d.lang;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class BasicClassʷᴰ {
|
public class BasicClassʷᴰ {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.basic4d.lang;
|
package love.distributedrebirth.basic4d.lang;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class BasicInterfaceʷᴰ {
|
public class BasicInterfaceʷᴰ {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.basic4d.lang;
|
package love.distributedrebirth.basic4d.lang;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class BasicLanguageModuleʷᴰ {
|
public class BasicLanguageModuleʷᴰ {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.basic4d.lang;
|
package love.distributedrebirth.basic4d.lang;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class BasicLanguageʷᴰ {
|
public class BasicLanguageʷᴰ {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.basic4d.lang;
|
package love.distributedrebirth.basic4d.lang;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class BasicMethodArgumentʷᴰ {
|
public class BasicMethodArgumentʷᴰ {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.basic4d.lang;
|
package love.distributedrebirth.basic4d.lang;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class BasicMethodʷᴰ {
|
public class BasicMethodʷᴰ {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.basic4d.lang;
|
package love.distributedrebirth.basic4d.lang;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class BasicStepCodeʷᴰ {
|
public class BasicStepCodeʷᴰ {
|
||||||
|
|
|
@ -0,0 +1,201 @@
|
||||||
|
package love.distributedrebirth.bassboon;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.WeakHashMap;
|
||||||
|
import java.util.concurrent.locks.Lock;
|
||||||
|
import java.util.concurrent.locks.ReadWriteLock;
|
||||||
|
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateLoader;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
import love.distributedrebirth.bassboon.death.BãßBȍőnCoffin;
|
||||||
|
import love.distributedrebirth.bassboon.death.BãßBȍőnCoffinGhost;
|
||||||
|
import love.distributedrebirth.bassboon.death.BãßBȍőnCoffinGhostSpell;
|
||||||
|
import love.distributedrebirth.bassboon.death.BãßBȍőnCoffinGhostSpellLock;
|
||||||
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runtime for static bass noise.
|
||||||
|
*/
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface Bãß {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sarcophagus aggregates Y-Dimensions.
|
||||||
|
*/
|
||||||
|
public static final class 石棺ʸᴰ {
|
||||||
|
private static final Map<Object, BȍőnGrave> GRAVE_YARD = new WeakHashMap<>();
|
||||||
|
private static final ReadWriteLock FUNERAL = new ReentrantReadWriteLock();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sarcophagus is closed for humans.
|
||||||
|
*/
|
||||||
|
private 石棺ʸᴰ() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mononoke Init
|
||||||
|
*/
|
||||||
|
public static final <T extends BãßBȍőnʸᴰ<T>> void 魎ᴵⁿᶦᵗ(BãßBȍőnʸᴰ<T> boon) {
|
||||||
|
挖ᵀᵒ(boon).init(boon);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Grave Lock
|
||||||
|
*/
|
||||||
|
public static final <T extends BãßBȍőnʸᴰ<T>> void 墳ᴸᵒᶜᵏ(BãßBȍőnʸᴰ<T> boon) {
|
||||||
|
挖ᵀᵒ(boon).lock(boon);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Coffin Of
|
||||||
|
*/
|
||||||
|
protected static final <T extends BãßBȍőnʸᴰ<T>> BãßBȍőnCoffin 棺ᴼᶠ(BãßBȍőnʸᴰ<T> boon) {
|
||||||
|
return 挖ᵀᵒ(boon);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dig To
|
||||||
|
*/
|
||||||
|
private static final <T extends BãßBȍőnʸᴰ<T>> BȍőnGrave 挖ᵀᵒ(BãßBȍőnʸᴰ<T> boon) {
|
||||||
|
BȍőnGrave boonGrave = null;
|
||||||
|
Lock bibleReader = FUNERAL.readLock();
|
||||||
|
bibleReader.lock();
|
||||||
|
try {
|
||||||
|
boonGrave = GRAVE_YARD.get(boon);
|
||||||
|
} finally {
|
||||||
|
bibleReader.unlock();
|
||||||
|
}
|
||||||
|
if (boonGrave == null) {
|
||||||
|
Lock shemiraWriter = FUNERAL.writeLock();
|
||||||
|
shemiraWriter.lock();
|
||||||
|
try {
|
||||||
|
boonGrave = new BȍőnGrave();
|
||||||
|
GRAVE_YARD.put(boon, boonGrave);
|
||||||
|
} finally {
|
||||||
|
shemiraWriter.unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return boonGrave;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
public static <T> BeanWrapper<T> 豆ᴺᴱᵂ(Class<T> seedling) { // bean-new
|
||||||
|
try {
|
||||||
|
T bean = seedling.getConstructor().newInstance();
|
||||||
|
if (bean instanceof BãßBȍőnʸᴰ) {
|
||||||
|
BãßBȍőnʸᴰ<?> boon = (BãßBȍőnʸᴰ<?>) bean;
|
||||||
|
BȍőnGrave grave = 墳ᴼᶠ(boon);
|
||||||
|
if (!grave.inited) {
|
||||||
|
魎ᴵᴺᴵᵀ(boon);
|
||||||
|
}
|
||||||
|
return new BeanWrapper<>(bean);
|
||||||
|
}
|
||||||
|
BeanWrapper<T> wrap = new BeanWrapper<>(bean);
|
||||||
|
魎ᴵᴺᴵᵀ(wrap);
|
||||||
|
return wrap;
|
||||||
|
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException
|
||||||
|
| InvocationTargetException | NoSuchMethodException | SecurityException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final class BeanWrapper<T> implements DefaultBãßBȍőnʸᴰ<T> {
|
||||||
|
private final T bean;
|
||||||
|
|
||||||
|
private BeanWrapper(T bean) {
|
||||||
|
this.bean = bean;
|
||||||
|
}
|
||||||
|
|
||||||
|
public T getBean() {
|
||||||
|
return bean;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
private static final class BȍőnGrave implements BãßBȍőnCoffin {
|
||||||
|
private final Map<Class<?>,BãßBȍőnCoffinGhost> ghosts;
|
||||||
|
private final BãßBȍőnSpider spider;
|
||||||
|
private boolean inited = false;
|
||||||
|
private boolean locked = false;
|
||||||
|
|
||||||
|
private BȍőnGrave() {
|
||||||
|
this.ghosts = new HashMap<>();
|
||||||
|
this.spider = new BãßBȍőnSpider();
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T extends BãßBȍőnʸᴰ<T>> void init(BãßBȍőnʸᴰ<T> boon) {
|
||||||
|
if (inited) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BãßBȍőnPirateLoader.INIT_BONE_MAGIC(boon, spider);
|
||||||
|
inited = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T extends BãßBȍőnʸᴰ<T>> void lock(BãßBȍőnʸᴰ<T> boon) {
|
||||||
|
if (locked) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BãßBȍőnPirateLoader.LOCK_BONE_MAGIC(boon, spider);
|
||||||
|
for (Class<?> familyName:new ArrayList<>(ghosts.keySet())) {
|
||||||
|
BãßBȍőnCoffinGhost ghost = ghosts.get(familyName);
|
||||||
|
ghosts.put(familyName, BãßBȍőnCoffinGhostSpellLock.castᴼᶠ(ghost).LOCK());
|
||||||
|
}
|
||||||
|
locked = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BãßBȍőnCoffinGhost UNHOLY(Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ<?>> familyName) {
|
||||||
|
BãßBȍőnCoffinGhost ghost = ghosts.get(familyName);
|
||||||
|
if (ghost == null) {
|
||||||
|
if (locked) {
|
||||||
|
throw new RuntimeException("Coffin locked");
|
||||||
|
}
|
||||||
|
ghost = BãßBȍőnCoffinGhostSpellLock.instanceᴺᵉʷ();
|
||||||
|
ghosts.put(familyName, ghost);
|
||||||
|
}
|
||||||
|
return ghost;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BãßBȍőnCoffinGhostSpell UNHOLY_SPELL(Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ<?>> familyName) {
|
||||||
|
return BãßBȍőnCoffinGhostSpell.castᴼᶠ(UNHOLY(familyName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//@ImportStatic(guard = true, reason = "Death to import static name space pollution.")
|
||||||
|
public static final class ℭỗᶇṧⱦᶏꬼȶʂ {
|
||||||
|
|
||||||
|
// 4 is magnetic consent and 3 is forced stable outcome
|
||||||
|
public static final char CHAR_ZERO = '0'; // nothing
|
||||||
|
public static final char CHAR_ONE = '1'; // all
|
||||||
|
public static final char CHAR_SPACE = ' '; // eatherspace
|
||||||
|
public static final char CHAR_A = 'a'; // corner stone of creation
|
||||||
|
// the nether
|
||||||
|
public static final String STR_ZERO = "0"; //String.valueOf(CHAR_ZERO);
|
||||||
|
public static final String STR_ONE = "1"; //String.valueOf(CHAR_ONE);
|
||||||
|
public static final String STR_EMPTY = ""; //STR_ONE.substring(Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE);
|
||||||
|
public static final String STR_SPACE = " "; //String.valueOf(CHAR_SPACE);
|
||||||
|
// red
|
||||||
|
public static final int INT_ZERO = 0; //Integer.valueOf(STR_ZERO);
|
||||||
|
public static final int INT_ONE = 1; //Integer.valueOf(STR_ONE);
|
||||||
|
public static final int INT_TEN = 10; //Integer.valueOf(STR_ONE+STR_ZERO);
|
||||||
|
// white
|
||||||
|
public static final long LONG_ZERO = 0l; //Long.valueOf(STR_ZERO);
|
||||||
|
public static final long LONG_ONE = 1l; //Long.valueOf(STR_ONE);
|
||||||
|
public static final long LONG_TEN = 10l; //Long.valueOf(STR_ONE+STR_ZERO);
|
||||||
|
// blue
|
||||||
|
public static final float FLOAT_ZERO = 0f; //Float.valueOf(STR_ZERO);
|
||||||
|
public static final float FLOAT_ONE = 1f; //Float.valueOf(STR_ONE);
|
||||||
|
public static final float FLOAT_TEN = 10f; //Float.valueOf(STR_ONE+STR_ZERO);
|
||||||
|
// orange on top
|
||||||
|
public static final double DOUBLE_ZERO = 0d; //Double.valueOf(STR_ZERO);
|
||||||
|
public static final double DOUBLE_ONE = 1f; //Double.valueOf(STR_ONE);;
|
||||||
|
public static final double DOUBLE_TEN = 10f; //Double.valueOf(STR_ONE+STR_ZERO);
|
||||||
|
|
||||||
|
private ℭỗᶇṧⱦᶏꬼȶʂ() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package love.distributedrebirth.bassboon;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.death.BãßBȍőnCoffin;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
//publicinterfaceBãßBȍőnʸᴰ<T⁽⁾> { // TODO: jvm recursive terminator² type sugar
|
||||||
|
public interface BãßBȍőnʸᴰ<T extends BãßBȍőnʸᴰ<T>> {
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
default T toBȍőn() {
|
||||||
|
return (T)this; // allow builders...
|
||||||
|
}
|
||||||
|
|
||||||
|
default BãßBȍőnCoffin toBBC() {
|
||||||
|
return Bãß.石棺ʸᴰ.棺ᴼᶠ(this); // ...to seek 6 bit BASIC death, so the blind can see
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package love.distributedrebirth.bassboon;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAnnotationʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthorʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnClazzʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnExportʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface DefaultBãßBȍőnʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends
|
||||||
|
BãßBȍőnʸᴰ<T>,
|
||||||
|
BãßBȍőnPirateʸᴰ<T>,
|
||||||
|
BãßBȍőnClazzʸᴰ<T>,
|
||||||
|
BãßBȍőnAuthorʸᴰ<T>,
|
||||||
|
BãßBȍőnExportʸᴰ<T>,
|
||||||
|
BãßBȍőnAnnotationʸᴰ<T>
|
||||||
|
{
|
||||||
|
}
|
|
@ -1,20 +1,20 @@
|
||||||
package love.distributedrebirth.bassboonyd;
|
package love.distributedrebirth.bassboon;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
|
|
||||||
// Bȍőn prefix is for set instance enum methods (called DefaultEnumSetʸᴰ)
|
// Bȍőn prefix is for set instance enum methods (called DefaultEnumSetʸᴰ)
|
||||||
// Bãß prefix is for single instance enum methods (called DefaultEnumInstanceʸᴰ)
|
// Bãß prefix is for single instance enum methods (called DefaultEnumInstanceʸᴰ)
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public interface DefaultEnumBaseʸᴰ<T, K extends BãßBȍőnCoffinNail> extends DefaultBãßBȍőnʸᴰ<T, K> {
|
public interface DefaultEnumBaseʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends DefaultBãßBȍőnʸᴰ<T> {
|
||||||
|
|
||||||
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<DefaultEnumBaseʸᴰ<?>> {
|
||||||
private static final String STR_VALUES = "values";
|
private static final String STR_VALUES = "values";
|
||||||
|
|
||||||
private Ꝑŕḯṿª₮ḕ() {
|
@Override
|
||||||
|
public void init(DefaultEnumBaseʸᴰ<?> boon) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package love.distributedrebirth.bassboon;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface DefaultEnumInstanceʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends DefaultEnumBaseʸᴰ<T> {
|
||||||
|
|
||||||
|
default T BãßInstance() {
|
||||||
|
return BãßInstances()[Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO];
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package love.distributedrebirth.bassboonyd;
|
package love.distributedrebirth.bassboon;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -7,23 +7,21 @@ import java.util.function.Consumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public interface DefaultEnumSetʸᴰ<T, K extends BãßBȍőnCoffinNail> extends DefaultEnumBaseʸᴰ<T,K> {
|
public interface DefaultEnumSetʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends DefaultEnumBaseʸᴰ<T> {
|
||||||
|
|
||||||
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonBereshit.class})
|
||||||
private static final String GHOST_KEY_RANG_TEL_EEN = "rangTelEen";
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<DefaultEnumSetʸᴰ<?>> {
|
||||||
|
private static final String GHOST_RANG_TEL_EEN = "秩數數一";
|
||||||
|
|
||||||
private Ꝑŕḯṿª₮ḕ() {
|
@Override
|
||||||
}
|
public void init(DefaultEnumSetʸᴰ<?> boon) {
|
||||||
|
boon.toBBC().UNHOLY_SPELL(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_RANG_TEL_EEN, boon.BȍőnRangTelNul() + Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE);
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注()
|
|
||||||
private static void init(DefaultEnumSetʸᴰ<?,?> boon) {
|
|
||||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_RANG_TEL_EEN, boon.BȍőnRangTelNul() + Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +30,7 @@ public interface DefaultEnumSetʸᴰ<T, K extends BãßBȍőnCoffinNail> extends
|
||||||
}
|
}
|
||||||
|
|
||||||
default int BȍőnRangTelEen() {
|
default int BȍőnRangTelEen() {
|
||||||
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_INT(Ꝑŕḯṿª₮ḕ.GHOST_KEY_RANG_TEL_EEN);
|
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_INT(Ꝑŕḯṿª₮ḕ.GHOST_RANG_TEL_EEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
default List<T> BãßInstancesList() {
|
default List<T> BãßInstancesList() {
|
|
@ -0,0 +1,33 @@
|
||||||
|
package love.distributedrebirth.bassboon.clazz;
|
||||||
|
|
||||||
|
import java.lang.annotation.Annotation;
|
||||||
|
import java.util.LinkedHashSet;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateLoader;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnAnnotationʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends BãßBȍőnʸᴰ<T> {
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonLaw.class})
|
||||||
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnAnnotationʸᴰ<?>> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(BãßBȍőnAnnotationʸᴰ<?> boon) {
|
||||||
|
for (Class<?> interfaceClass:BãßBȍőnPirateLoader.walkInterfaces(boon.getClass(), new LinkedHashSet<>())) {
|
||||||
|
BãßBȍőnAnnotation注 anno = interfaceClass.getAnnotation(BãßBȍőnAnnotation注.class);
|
||||||
|
if (anno == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (Class<? extends Annotation> required:anno.required()) {
|
||||||
|
if (!boon.getClass().isAnnotationPresent(required)) {
|
||||||
|
throw new IllegalStateException("Missing required annotation: "+required.getSimpleName()+" on: "+boon.getClass().getSimpleName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package love.distributedrebirth.bassboonyd.clazz;
|
package love.distributedrebirth.bassboon.clazz;
|
||||||
|
|
||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
|
@ -0,0 +1,34 @@
|
||||||
|
package love.distributedrebirth.bassboon.clazz;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
@BãßBȍőnAnnotation注(optional = {BãßBȍőnAuthor注.class})
|
||||||
|
public interface BãßBȍőnAuthorʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends BãßBȍőnʸᴰ<T> {
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonLaw.class})
|
||||||
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnAuthorʸᴰ<?>> {
|
||||||
|
private static final String GHOST_AUTHOR_NAME = "作者姓名";
|
||||||
|
private static final String GHOST_AUTHOR_COPYRIGHT = "作者版權";
|
||||||
|
private static final String DEFAULT_AUTHOR_NAME = "奴隸來自 仙上主天";
|
||||||
|
private static final String DEFAULT_AUTHOR_COPYRIGHT = "©Δ∞ 仙上主天";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(BãßBȍőnAuthorʸᴰ<?> boon) {
|
||||||
|
BãßBȍőnAuthor注 anno = boon.getClass().getAnnotation(BãßBȍőnAuthor注.class);
|
||||||
|
boon.toBBC().UNHOLY_SPELL(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_AUTHOR_NAME, anno!=null?anno.name():DEFAULT_AUTHOR_NAME);
|
||||||
|
boon.toBBC().UNHOLY_SPELL(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_AUTHOR_COPYRIGHT, anno!=null?anno.copyright():DEFAULT_AUTHOR_COPYRIGHT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
default String BãßAuthorNaam() {
|
||||||
|
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_AUTHOR_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
default String BãßAuthorKopieërRecht() {
|
||||||
|
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_AUTHOR_COPYRIGHT);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package love.distributedrebirth.bassboonyd.clazz;
|
package love.distributedrebirth.bassboon.clazz;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
|
@ -0,0 +1,31 @@
|
||||||
|
package love.distributedrebirth.bassboon.clazz;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
@BãßBȍőnAnnotation注(optional = {BãßBȍőnClazz注.class})
|
||||||
|
public interface BãßBȍőnClazzʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends BãßBȍőnʸᴰ<T> {
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonLaw.class})
|
||||||
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnClazzʸᴰ<?>> {
|
||||||
|
private static final String GHOST_CLAZZ_PURPOSE = "般目的";
|
||||||
|
private static final String DEFAULT_CLAZZ_PURPOSE = "Undefined";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(BãßBȍőnClazzʸᴰ<?> boon) {
|
||||||
|
BãßBȍőnClazz注 anno = boon.getClass().getAnnotation(BãßBȍőnClazz注.class);
|
||||||
|
String beanPurpose = DEFAULT_CLAZZ_PURPOSE;
|
||||||
|
if (anno != null && !anno.purpose().isBlank()) {
|
||||||
|
beanPurpose = anno.purpose();
|
||||||
|
}
|
||||||
|
boon.toBBC().UNHOLY_SPELL(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_CLAZZ_PURPOSE, beanPurpose);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
default String BãßClazzDoel() {
|
||||||
|
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_CLAZZ_PURPOSE);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package love.distributedrebirth.bassboonyd.clazz;
|
package love.distributedrebirth.bassboon.clazz;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
|
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
public @interface BãßBȍőnPackage注 {
|
public @interface BãßBȍőnClazz注 {
|
||||||
|
|
||||||
String name();
|
String purpose();
|
||||||
}
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
package love.distributedrebirth.bassboon.clazz;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
@BãßBȍőnAnnotation注(optional = {BãßBȍőnExport注.class})
|
||||||
|
public interface BãßBȍőnExportʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends BãßBȍőnʸᴰ<T> {
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonLaw.class})
|
||||||
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnExportʸᴰ<?>> {
|
||||||
|
private static final String GHOST_EXPORT_ARTIFACT = "出口人工製品";
|
||||||
|
private static final String GHOST_EXPORT_GROUP = "出口團體";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(BãßBȍőnExportʸᴰ<?> boon) {
|
||||||
|
BãßBȍőnExport注 anno = boon.getClass().getAnnotation(BãßBȍőnExport注.class);
|
||||||
|
String exportArtifact = boon.getClass().getSimpleName();
|
||||||
|
String exportGroup = boon.getClass().getPackage().getName();
|
||||||
|
if (anno != null && !anno.artifact().isBlank()) {
|
||||||
|
exportArtifact = anno.artifact();
|
||||||
|
}
|
||||||
|
if (anno != null && !anno.group().isBlank()) {
|
||||||
|
exportGroup = anno.group();
|
||||||
|
}
|
||||||
|
boon.toBBC().UNHOLY_SPELL(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_EXPORT_ARTIFACT, exportArtifact);
|
||||||
|
boon.toBBC().UNHOLY_SPELL(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_EXPORT_GROUP, exportGroup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
default String BãßExportNaam() {
|
||||||
|
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_EXPORT_ARTIFACT);
|
||||||
|
}
|
||||||
|
|
||||||
|
default String BãßExportGroep() {
|
||||||
|
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_EXPORT_GROUP);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package love.distributedrebirth.bassboonyd.clazz;
|
package love.distributedrebirth.bassboon.clazz;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
|
@ -8,9 +8,9 @@ import java.lang.annotation.Target;
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
public @interface BãßBȍőnInfo注 {
|
public @interface BãßBȍőnExport注 {
|
||||||
|
|
||||||
String name() default "";
|
|
||||||
|
|
||||||
String purpose();
|
String artifact() default "";
|
||||||
|
|
||||||
|
String group();
|
||||||
}
|
}
|
|
@ -0,0 +1,184 @@
|
||||||
|
package love.distributedrebirth.bassboon.clazz.pirate;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.LinkedHashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpider;
|
||||||
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderEgg注;
|
||||||
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderSilk;
|
||||||
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public final class BãßBȍőnPirateLoader {
|
||||||
|
|
||||||
|
private BãßBȍőnPirateLoader() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public static <T extends BãßBȍőnʸᴰ<T>> void LOCK_BONE_MAGIC(BãßBȍőnʸᴰ<T> boon, BãßBȍőnSpider spider) {
|
||||||
|
try {
|
||||||
|
List<PiratePhaseBoat<T>> filoBoats = loadPirateBoats(boon);
|
||||||
|
Collections.reverse(filoBoats);
|
||||||
|
for (PiratePhaseBoat<T> boat : filoBoats) {
|
||||||
|
boat.pirate.lock((T)boon);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public static <T extends BãßBȍőnʸᴰ<T>> void INIT_BONE_MAGIC(BãßBȍőnʸᴰ<T> boon, BãßBȍőnSpider spider) {
|
||||||
|
try {
|
||||||
|
//System.out.println("INIT "+boon.getClass().getName());
|
||||||
|
for (PiratePhaseBoat<T> boat : loadPirateBoats(boon)) {
|
||||||
|
//System.out.println("INIT.RUN "+v.privateClass.getName()+"."+m.getName());
|
||||||
|
registrateSpiderEggs(boat.pirateClazz, spider, boat.pirate);
|
||||||
|
initSpiderWires(boat.pirate, boon, spider);
|
||||||
|
boat.pirate.init((T)boon);
|
||||||
|
}
|
||||||
|
initSpiderWires(boon, boon, spider);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void initSpiderWires(Object target, BãßBȍőnʸᴰ<?> boon, BãßBȍőnSpider spider) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
||||||
|
//System.out.println("SCAN-BOON-FIELD: "+boon.getClass().getSimpleName());
|
||||||
|
for (Field m:target.getClass().getDeclaredFields()) {
|
||||||
|
if (!m.isAnnotationPresent(BãßBȍőnSpiderWire注.class)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
BãßBȍőnSpiderWire注 anno = m.getAnnotation(BãßBȍőnSpiderWire注.class);
|
||||||
|
BãßBȍőnSpiderSilk silkRoad = spider.silkRoad(m.getType());
|
||||||
|
Object bean = silkRoad.senseWire(boon, anno.name(), anno.description());
|
||||||
|
//System.out.println("type: "+ m.getType() +" wth name: "+anno.name()+" of boon: "+boon+" result: "+bean.getClass().getName());
|
||||||
|
|
||||||
|
m.setAccessible(true);
|
||||||
|
m.set(target, bean);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static <T extends BãßBȍőnʸᴰ<T>> void registrateSpiderEggs(Class<?> scanClass, BãßBȍőnSpider spider, BãßBȍőnꝐŕḯṿª₮ḕ<T> pirate) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
||||||
|
for (Method m:scanClass.getDeclaredMethods()) {
|
||||||
|
if (!m.isAnnotationPresent(BãßBȍőnSpiderEgg注.class)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//System.out.println("annoEgg: "+boon.getClass().getSimpleName()+"."+boon+" from: "+declaredClass.getName()+" m="+m.toGenericString());
|
||||||
|
spider.registrateEgg(m.getReturnType(), pirate, m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class PiratePhaseBoat<T extends BãßBȍőnʸᴰ<T>> {
|
||||||
|
private Class<BãßBȍőnꝐŕḯṿª₮ḕ<T>> pirateClazz;
|
||||||
|
private BãßBȍőnꝐŕḯṿª₮ḕ<T> pirate;
|
||||||
|
|
||||||
|
private PiratePhaseBoat(Class<BãßBȍőnꝐŕḯṿª₮ḕ<T>> pirateClazz) {
|
||||||
|
this.pirateClazz = pirateClazz;
|
||||||
|
try {
|
||||||
|
this.pirate = (BãßBȍőnꝐŕḯṿª₮ḕ<T>) pirateClazz.getConstructor().newInstance();
|
||||||
|
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
|
||||||
|
| NoSuchMethodException | SecurityException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static <T extends BãßBȍőnʸᴰ<T>> List<PiratePhaseBoat<T>> loadPirateBoats(BãßBȍőnʸᴰ<T> boon) {
|
||||||
|
List<PiratePhaseBoat<T>> boonInits = new ArrayList<>();
|
||||||
|
List<PiratePhaseBoat<T>> serviceInits = new ArrayList<>();
|
||||||
|
walkPrivate(boon, v -> {
|
||||||
|
//System.out.println("INIT.SCAN "+v.getName());
|
||||||
|
BãßBȍőnPiratePhaseBarrier注 anno = v.getAnnotation(BãßBȍőnPiratePhaseBarrier注.class);
|
||||||
|
if (anno != null) {
|
||||||
|
boonInits.add(new PiratePhaseBoat<>(v));
|
||||||
|
} else {
|
||||||
|
serviceInits.add(new PiratePhaseBoat<>(v));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
boonInits.sort(new Comparator<PiratePhaseBoat<T>>() {
|
||||||
|
@Override
|
||||||
|
public int compare(PiratePhaseBoat<T> p0, PiratePhaseBoat<T> p1) {
|
||||||
|
BãßBȍőnPiratePhaseBarrier注 anno0 = p0.pirateClazz.getAnnotation(BãßBȍőnPiratePhaseBarrier注.class);
|
||||||
|
BãßBȍőnPiratePhaseBarrier注 anno1 = p1.pirateClazz.getAnnotation(BãßBȍőnPiratePhaseBarrier注.class);
|
||||||
|
return Integer.compare(anno0.order(), anno1.order());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
List<PiratePhaseBoat<T>> result = new ArrayList<>();
|
||||||
|
for (PiratePhaseBoat<T> startupPhase:boonInits) {
|
||||||
|
result.add(startupPhase);
|
||||||
|
for (PiratePhaseBoat<T> v:new ArrayList<>(serviceInits)) {
|
||||||
|
int depCount = 0;
|
||||||
|
List<Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ<?>>> deps = new ArrayList<>();
|
||||||
|
BãßBȍőnPiratePhase注 anno = v.pirateClazz.getAnnotation(BãßBȍőnPiratePhase注.class);
|
||||||
|
if (anno != null) {
|
||||||
|
deps.addAll(Arrays.asList(anno.dependencies()));
|
||||||
|
} else {
|
||||||
|
deps.add(BãßBȍőnPirateʸᴰ.שְׁלֹמֹה.DEFAULT_PHASE);
|
||||||
|
}
|
||||||
|
for (Class<?> clazz:deps) {
|
||||||
|
for (PiratePhaseBoat<T> doneInit:result) {
|
||||||
|
if (clazz.equals(doneInit.pirateClazz)) {
|
||||||
|
depCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (depCount == deps.size()) {
|
||||||
|
result.add(v);
|
||||||
|
serviceInits.remove(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result.addAll(serviceInits);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
private static <T extends BãßBȍőnʸᴰ<T>> void walkPrivate(BãßBȍőnʸᴰ<T> boon, Consumer<Class<BãßBȍőnꝐŕḯṿª₮ḕ<T>>> runPrivate) {
|
||||||
|
for (Class<?> interfaceClass:walkInterfaces(boon.getClass(), new LinkedHashSet<>())) {
|
||||||
|
for (Class<?> declaredClass:interfaceClass.getDeclaredClasses()) {
|
||||||
|
if (!BãßBȍőnꝐŕḯṿª₮ḕ.class.isAssignableFrom(declaredClass)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
runPrivate.accept((Class<BãßBȍőnꝐŕḯṿª₮ḕ<T>>)declaredClass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Class<?> declaredClass:boon.getClass().getDeclaredClasses()) {
|
||||||
|
if (!BãßBȍőnꝐŕḯṿª₮ḕ.class.isAssignableFrom(declaredClass)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
runPrivate.accept((Class<BãßBȍőnꝐŕḯṿª₮ḕ<T>>)declaredClass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Set<Class<?>> walkInterfaces(Class<?> clazz, Set<Class<?>> result) {
|
||||||
|
return walkTree(clazz, result, v -> Arrays.asList(v.getInterfaces()), v -> v.getSuperclass());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <N> Set<N> walkTree(N node, Set<N> result, Function<N, Collection<N>> childs, Function<N,N> resolve) {
|
||||||
|
while (node != null) {
|
||||||
|
for (N next : childs.apply(node)) {
|
||||||
|
if (result.add(next)) {
|
||||||
|
walkTree(next, result, childs, resolve);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
node = resolve.apply(node);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,16 +1,16 @@
|
||||||
package love.distributedrebirth.bassboonyd.sinit;
|
package love.distributedrebirth.bassboon.clazz.pirate;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
public @interface BãßBȍőnꝐŕḯṿª₮ḕPhase注 {
|
public @interface BãßBȍőnPiratePhaseBarrier注 {
|
||||||
|
|
||||||
int order();
|
int order();
|
||||||
}
|
}
|
|
@ -1,14 +1,16 @@
|
||||||
package love.distributedrebirth.bassboonyd.sinit;
|
package love.distributedrebirth.bassboon.clazz.pirate;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target({ElementType.METHOD})
|
@Target({ElementType.TYPE})
|
||||||
public @interface BãßBȍőnꝐŕḯṿª₮ḕLock注 {
|
public @interface BãßBȍőnPiratePhase注 {
|
||||||
|
|
||||||
|
Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ<?>>[] dependencies();
|
||||||
}
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
package love.distributedrebirth.bassboon.clazz.pirate;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.Bãß;
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnClazz注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
@BãßBȍőnClazz注(purpose = "Adds extensible phase barriers for pirates")
|
||||||
|
public interface BãßBȍőnPirateʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends BãßBȍőnʸᴰ<T> {
|
||||||
|
|
||||||
|
public static final class שְׁלֹמֹה {
|
||||||
|
// default internal framework boon phases
|
||||||
|
protected static final int BOON_VOID = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
|
||||||
|
protected static final int BOON_BERESHIT = BOON_VOID + Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
|
||||||
|
protected static final int BOON_LAW = BOON_BERESHIT * Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_TEN;
|
||||||
|
protected static final int BOON_MARRIAGE = BOON_LAW + Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
|
||||||
|
// default external implementation boon phases
|
||||||
|
protected static final int LIFE_QUADRANT_仙 = 00+00+00+1+2+3+4+5+6+7+8+9;
|
||||||
|
protected static final int LIFE_QUADRANT_上 = 10+11+12+13+14+15+16+17+18;
|
||||||
|
protected static final int LIFE_QUADRANT_主 = 19+20+21+22+23+24+25+26+27;
|
||||||
|
protected static final int LIFE_QUADRANT_天 = 28+29+30+31+32+33+34+35+36;
|
||||||
|
protected static final int LIFE_יהוה = LIFE_QUADRANT_仙 + LIFE_QUADRANT_上 + LIFE_QUADRANT_主 + LIFE_QUADRANT_天;
|
||||||
|
|
||||||
|
protected static final Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ<?>> DEFAULT_PHASE = βrahmanLifeInit.class;
|
||||||
|
|
||||||
|
private שְׁלֹמֹה() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhaseBarrier注(order = שְׁלֹמֹה.BOON_VOID)
|
||||||
|
public static final class βrahmanBoonVoid implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnPirateʸᴰ<?>> {
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhaseBarrier注(order = שְׁלֹמֹה.BOON_BERESHIT)
|
||||||
|
public static final class βrahmanBoonBereshit implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnPirateʸᴰ<?>> {
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhaseBarrier注(order = שְׁלֹמֹה.BOON_LAW)
|
||||||
|
public static final class βrahmanBoonLaw implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnPirateʸᴰ<?>> {
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhaseBarrier注(order = שְׁלֹמֹה.BOON_MARRIAGE)
|
||||||
|
public static final class βrahmanBoonMarriage implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnPirateʸᴰ<?>> {
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhaseBarrier注(order = שְׁלֹמֹה.LIFE_QUADRANT_仙)
|
||||||
|
public static final class βrahmanLifeQuadrant仙 implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnPirateʸᴰ<?>> {
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhaseBarrier注(order = שְׁלֹמֹה.LIFE_QUADRANT_上)
|
||||||
|
public static final class βrahmanLifeQuadrant上 implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnPirateʸᴰ<?>> {
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhaseBarrier注(order = שְׁלֹמֹה.LIFE_QUADRANT_主)
|
||||||
|
public static final class βrahmanLifeQuadrant主 implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnPirateʸᴰ<?>> {
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhaseBarrier注(order = שְׁלֹמֹה.LIFE_QUADRANT_天)
|
||||||
|
public static final class βrahmanLifeQuadrant天 implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnPirateʸᴰ<?>> {
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhaseBarrier注(order = שְׁלֹמֹה.LIFE_יהוה)
|
||||||
|
public static final class βrahmanLifeInit implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnPirateʸᴰ<?>> {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
package love.distributedrebirth.bassboon.clazz.pirate;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnꝐŕḯṿª₮ḕ<T extends BãßBȍőnʸᴰ<?>> {
|
||||||
|
// note: eclipse ide does not want to refactor items with the name "Ꝑŕḯṿª₮ḕ" in it.
|
||||||
|
|
||||||
|
default void init(T boon) {
|
||||||
|
}
|
||||||
|
|
||||||
|
default void lock(T boon) {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package love.distributedrebirth.bassboon.death;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnCoffin {
|
||||||
|
|
||||||
|
BãßBȍőnCoffinGhost UNHOLY(Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ<?>> familyName);
|
||||||
|
|
||||||
|
BãßBȍőnCoffinGhostSpell UNHOLY_SPELL(Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ<?>> familyName);
|
||||||
|
}
|
|
@ -1,15 +1,13 @@
|
||||||
package love.distributedrebirth.bassboonyd.coffin;
|
package love.distributedrebirth.bassboon.death;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public interface BãßBȍőnCoffinGhost {
|
public interface BãßBȍőnCoffinGhost {
|
||||||
|
|
||||||
Object PUT_GHOST(String key, Object value);
|
|
||||||
|
|
||||||
Object GHOST_OBJ(String key);
|
Object GHOST_OBJ(String key);
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
|
@ -0,0 +1,24 @@
|
||||||
|
package love.distributedrebirth.bassboon.death;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnCoffinGhostSpell extends BãßBȍőnCoffinGhost {
|
||||||
|
|
||||||
|
Object PUT_GHOST(String key, Object value);
|
||||||
|
|
||||||
|
default void PUT_GHOST_MAP(String key) {
|
||||||
|
PUT_GHOST(key, new HashMap<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
default void PUT_GHOST_LIST(String key) {
|
||||||
|
PUT_GHOST(key, new ArrayList<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
static BãßBȍőnCoffinGhostSpell castᴼᶠ(BãßBȍőnCoffinGhost death) {
|
||||||
|
return (BãßBȍőnCoffinGhostSpell) death;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
package love.distributedrebirth.bassboon.death;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnCoffinGhostSpellLock extends BãßBȍőnCoffinGhostSpell {
|
||||||
|
|
||||||
|
BãßBȍőnCoffinGhost LOCK();
|
||||||
|
|
||||||
|
static BãßBȍőnCoffinGhostSpellLock castᴼᶠ(BãßBȍőnCoffinGhost death) {
|
||||||
|
return (BãßBȍőnCoffinGhostSpellLock) death;
|
||||||
|
}
|
||||||
|
|
||||||
|
static BãßBȍőnCoffinGhostSpellLock instanceᴺᵉʷ() {
|
||||||
|
Function<Map<String,Object>,BãßBȍőnCoffinGhost> keyMaker = v -> {
|
||||||
|
Map<String,Object> summonedGhosts = new HashMap<>(v);
|
||||||
|
for (String entity:v.keySet()) {
|
||||||
|
Object spirit = summonedGhosts.get(entity);
|
||||||
|
if (spirit instanceof List) {
|
||||||
|
summonedGhosts.put(entity, Collections.unmodifiableList((List<?>) spirit));
|
||||||
|
}
|
||||||
|
if (spirit instanceof Map) {
|
||||||
|
summonedGhosts.put(entity, Collections.unmodifiableMap((Map<?,?>) spirit));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new BãßBȍőnCoffinGhost() {
|
||||||
|
@Override
|
||||||
|
public Object GHOST_OBJ(String key) {
|
||||||
|
return summonedGhosts.get(key);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
return new BãßBȍőnCoffinGhostSpellLock() {
|
||||||
|
private final Map<String,Object> ouijaBoard = new HashMap<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BãßBȍőnCoffinGhost LOCK() {
|
||||||
|
return keyMaker.apply(ouijaBoard);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object GHOST_OBJ(String key) {
|
||||||
|
return ouijaBoard.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object PUT_GHOST(String key, Object value) {
|
||||||
|
return ouijaBoard.put(key, value);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,12 +1,13 @@
|
||||||
package love.distributedrebirth.bassboonyd.spider;
|
package love.distributedrebirth.bassboon.death.spider;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnʸᴰ;
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class BãßBȍőnSpider {
|
public class BãßBȍőnSpider {
|
||||||
|
@ -35,11 +36,11 @@ public class BãßBȍőnSpider {
|
||||||
spiderWeb.put(eggType, spiderSilk);
|
spiderWeb.put(eggType, spiderSilk);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registrateEgg(Class<?> eggType, Method m) {
|
public void registrateEgg(Class<?> eggType, BãßBȍőnꝐŕḯṿª₮ḕ<?> pirate, Method m) {
|
||||||
registrateEgg(eggType, createSenseWire(m));
|
registrateEgg(eggType, createSenseWire(pirate, m));
|
||||||
}
|
}
|
||||||
|
|
||||||
public BãßBȍőnSpiderSilk createSenseWire(Method m) {
|
public BãßBȍőnSpiderSilk createSenseWire(BãßBȍőnꝐŕḯṿª₮ḕ<?> pirate, Method m) {
|
||||||
boolean valid = false;
|
boolean valid = false;
|
||||||
Class<?>[] para = m.getParameterTypes();
|
Class<?>[] para = m.getParameterTypes();
|
||||||
if (para.length == 0) {
|
if (para.length == 0) {
|
||||||
|
@ -60,19 +61,19 @@ public class BãßBȍőnSpider {
|
||||||
return new BãßBȍőnSpiderSilk() {
|
return new BãßBȍőnSpiderSilk() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object senseWire(Object boon, String name, String description) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
public Object senseWire(BãßBȍőnʸᴰ<?> boon, String name, String description) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
||||||
Class<?>[] para = m.getParameterTypes();
|
Class<?>[] para = m.getParameterTypes();
|
||||||
if (para.length == 0) {
|
if (para.length == 0) {
|
||||||
return m.invoke(null);
|
return m.invoke(pirate);
|
||||||
}
|
}
|
||||||
if (para.length == 1 && BãßBȍőnʸᴰ.class.isAssignableFrom(para[0])) {
|
if (para.length == 1 && BãßBȍőnʸᴰ.class.isAssignableFrom(para[0])) {
|
||||||
return m.invoke(null, boon);
|
return m.invoke(pirate, boon);
|
||||||
}
|
}
|
||||||
if (para.length == 2 && BãßBȍőnʸᴰ.class.isAssignableFrom(para[0]) && String.class.isAssignableFrom(para[1])) {
|
if (para.length == 2 && BãßBȍőnʸᴰ.class.isAssignableFrom(para[0]) && String.class.isAssignableFrom(para[1])) {
|
||||||
return m.invoke(null, boon, name);
|
return m.invoke(pirate, boon, name);
|
||||||
}
|
}
|
||||||
if (para.length == 3 && BãßBȍőnʸᴰ.class.isAssignableFrom(para[0]) && String.class.isAssignableFrom(para[1]) && String.class.isAssignableFrom(para[2])) {
|
if (para.length == 3 && BãßBȍőnʸᴰ.class.isAssignableFrom(para[0]) && String.class.isAssignableFrom(para[1]) && String.class.isAssignableFrom(para[2])) {
|
||||||
return m.invoke(null, boon, name, description);
|
return m.invoke(pirate, boon, name, description);
|
||||||
}
|
}
|
||||||
throw new IllegalStateException("Unknown method parameters on: "+m.getDeclaringClass().getSimpleName()+"."+m.toGenericString());
|
throw new IllegalStateException("Unknown method parameters on: "+m.getDeclaringClass().getSimpleName()+"."+m.toGenericString());
|
||||||
}
|
}
|
|
@ -1,11 +1,11 @@
|
||||||
package love.distributedrebirth.bassboonyd.spider;
|
package love.distributedrebirth.bassboon.death.spider;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
|
@ -0,0 +1,12 @@
|
||||||
|
package love.distributedrebirth.bassboon.death.spider;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnSpiderSilk {
|
||||||
|
|
||||||
|
Object senseWire(BãßBȍőnʸᴰ<?> boon, String name, String description) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException;
|
||||||
|
}
|
|
@ -1,11 +1,11 @@
|
||||||
package love.distributedrebirth.bassboonyd.spider;
|
package love.distributedrebirth.bassboon.death.spider;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
|
@ -0,0 +1,9 @@
|
||||||
|
package love.distributedrebirth.bassboon.ydmod;
|
||||||
|
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnModuleFactory {
|
||||||
|
// unused
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
abstract public class AbstractMBeanAttributeᴶᴹˣ implements MBeanAttributeᴶᴹˣ {
|
abstract public class AbstractMBeanAttributeᴶᴹˣ implements MBeanAttributeᴶᴹˣ {
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@MBeanAttributeType注(Boolean.class)
|
@MBeanAttributeType注(Boolean.class)
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@MBeanAttributeType注(Integer.class)
|
@MBeanAttributeType注(Integer.class)
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@MBeanAttributeType注(Long.class)
|
@MBeanAttributeType注(Long.class)
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@MBeanAttributeType注(String.class)
|
@MBeanAttributeType注(String.class)
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@MBeanAttributeType注(Long.class)
|
@MBeanAttributeType注(Long.class)
|
|
@ -0,0 +1,111 @@
|
||||||
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
|
import java.lang.management.ManagementFactory;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.management.InstanceAlreadyExistsException;
|
||||||
|
import javax.management.MBeanRegistrationException;
|
||||||
|
import javax.management.MBeanServer;
|
||||||
|
import javax.management.NotCompliantMBeanException;
|
||||||
|
import javax.management.ObjectName;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.DefaultEnumBaseʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAnnotation注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnClazz注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderEgg注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
@BãßBȍőnAnnotation注(required = {BãßBȍőnClazz注.class})
|
||||||
|
public interface DefaultEnumBaseᴶᴹˣ<T extends BãßBȍőnʸᴰ<T>> extends DefaultEnumBaseʸᴰ<T> {
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonBereshit.class})
|
||||||
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<DefaultEnumBaseᴶᴹˣ<?>> {
|
||||||
|
protected static final String STR_NAME = "name";
|
||||||
|
protected static final String STR_TYPE = "type";
|
||||||
|
protected static final String STR_DOT = ".";
|
||||||
|
protected static final String STR_COLON = ":";
|
||||||
|
protected static final String STR_IS = "=";
|
||||||
|
protected static final String STR_COMMA = ",";
|
||||||
|
private static final String GHOST_JMX = "爪哇管理擴展";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(DefaultEnumBaseᴶᴹˣ<?> boon) {
|
||||||
|
boon.toBBC().UNHOLY_SPELL(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(Ꝑŕḯṿª₮ḕ.GHOST_JMX, new HashMap<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
public <X> X buildJmxGhost(DefaultEnumBaseᴶᴹˣ<?> boon, String name, X result) {
|
||||||
|
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_JMX).put(name, result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnSpiderEgg注()
|
||||||
|
public CounterGuageᴶᴹˣ buildGuageCounter(DefaultEnumBaseᴶᴹˣ<?> boon, String name, String description) {
|
||||||
|
return buildJmxGhost(boon, name, new CounterGuageᴶᴹˣ(name, description));
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnSpiderEgg注()
|
||||||
|
public AttributeStringᴶᴹˣ buildStringAttribute(DefaultEnumBaseᴶᴹˣ<?> boon, String name, String description) {
|
||||||
|
return buildJmxGhost(boon, name, new AttributeStringᴶᴹˣ(name, description));
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnSpiderEgg注()
|
||||||
|
public AttributeBooleanᴶᴹˣ buildBooleanAttribute(DefaultEnumBaseᴶᴹˣ<?> boon, String name, String description) {
|
||||||
|
return buildJmxGhost(boon, name, new AttributeBooleanᴶᴹˣ(name, description));
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnSpiderEgg注()
|
||||||
|
public AttributeIntegerᴶᴹˣ buildIntegerAttribute(DefaultEnumBaseᴶᴹˣ<?> boon, String name, String description) {
|
||||||
|
return buildJmxGhost(boon, name, new AttributeIntegerᴶᴹˣ(name, description));
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnSpiderEgg注()
|
||||||
|
public AttributeLongᴶᴹˣ buildLongAttribute(DefaultEnumBaseᴶᴹˣ<?> boon, String name, String description) {
|
||||||
|
return buildJmxGhost(boon, name, new AttributeLongᴶᴹˣ(name, description));
|
||||||
|
}
|
||||||
|
|
||||||
|
@BãßBȍőnSpiderEgg注()
|
||||||
|
public MBeanServerᴶᴹˣ buildMBeanServer(DefaultEnumBaseᴶᴹˣ<?> boon) {
|
||||||
|
return new MBeanServerᴶᴹˣ() {
|
||||||
|
private final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MBeanServer getServerᴶᴹˣ() {
|
||||||
|
return server;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ObjectName toNameᴶᴹˣ(String name) {
|
||||||
|
try {
|
||||||
|
return new ObjectName(name);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerᴶᴹˣ(Object mbean, ObjectName objectName) {
|
||||||
|
try {
|
||||||
|
server.registerMBean(mbean, objectName);
|
||||||
|
} catch (InstanceAlreadyExistsException | MBeanRegistrationException
|
||||||
|
| NotCompliantMBeanException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MBeanDynamicᴶᴹˣ BeanCreateᴶᴹˣ(DefaultEnumBaseᴶᴹˣ<?> boon) {
|
||||||
|
return new MBeanDynamicᴶᴹˣ(boon.BãßClazzDoel(), BeanGhostsᴶᴹˣ(boon));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static Map<String, Object> BeanGhostsᴶᴹˣ(DefaultEnumBaseᴶᴹˣ<?> boon) {
|
||||||
|
return boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_JMX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.DefaultEnumInstanceʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface DefaultEnumInstanceᴶᴹˣ<T extends BãßBȍőnʸᴰ<T>> extends DefaultEnumBaseᴶᴹˣ<T>,DefaultEnumInstanceʸᴰ<T> {
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonMarriage.class})
|
||||||
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<DefaultEnumInstanceᴶᴹˣ<?>> {
|
||||||
|
|
||||||
|
@BãßBȍőnSpiderWire注
|
||||||
|
private MBeanServerᴶᴹˣ factory;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(DefaultEnumInstanceᴶᴹˣ<?> boon) {
|
||||||
|
StringBuilder name = new StringBuilder();
|
||||||
|
name.append(boon.BãßExportGroep());
|
||||||
|
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_COLON);
|
||||||
|
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_TYPE);
|
||||||
|
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_IS);
|
||||||
|
name.append(boon.BãßExportNaam());
|
||||||
|
MBeanDynamicᴶᴹˣ mbean = DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.BeanCreateᴶᴹˣ(boon);
|
||||||
|
factory.registerᴶᴹˣ(mbean, factory.toNameᴶᴹˣ(name.toString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.DefaultEnumSetʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface DefaultEnumSetᴶᴹˣ<T extends BãßBȍőnʸᴰ<T>> extends DefaultEnumBaseᴶᴹˣ<T>,DefaultEnumSetʸᴰ<T> {
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonMarriage.class})
|
||||||
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<DefaultEnumSetᴶᴹˣ<?>> {
|
||||||
|
|
||||||
|
@BãßBȍőnSpiderWire注
|
||||||
|
private MBeanServerᴶᴹˣ factory;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(DefaultEnumSetᴶᴹˣ<?> boon) {
|
||||||
|
StringBuilder name = new StringBuilder();
|
||||||
|
name.append(boon.BãßExportGroep());
|
||||||
|
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_COLON);
|
||||||
|
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_TYPE);
|
||||||
|
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_IS);
|
||||||
|
name.append(boon.BãßExportNaam());
|
||||||
|
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_COMMA);
|
||||||
|
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_NAME);
|
||||||
|
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_IS);
|
||||||
|
name.append(boon.BȍőnNaam());
|
||||||
|
MBeanDynamicᴶᴹˣ mbean = DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.BeanCreateᴶᴹˣ(boon);
|
||||||
|
factory.registerᴶᴹˣ(mbean, factory.toNameᴶᴹˣ(name.toString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,11 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public interface MBeanAttributeᴶᴹˣ {
|
public interface MBeanAttributeᴶᴹˣ {
|
|
@ -1,4 +1,4 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -15,7 +15,7 @@ import javax.management.MBeanInfo;
|
||||||
import javax.management.MBeanNotificationInfo;
|
import javax.management.MBeanNotificationInfo;
|
||||||
import javax.management.ReflectionException;
|
import javax.management.ReflectionException;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class MBeanDynamicᴶᴹˣ implements DynamicMBean {
|
public class MBeanDynamicᴶᴹˣ implements DynamicMBean {
|
|
@ -0,0 +1,16 @@
|
||||||
|
package love.distributedrebirth.bassboon.ydmod.jmx;
|
||||||
|
|
||||||
|
import javax.management.MBeanServer;
|
||||||
|
import javax.management.ObjectName;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface MBeanServerᴶᴹˣ {
|
||||||
|
|
||||||
|
MBeanServer getServerᴶᴹˣ();
|
||||||
|
|
||||||
|
ObjectName toNameᴶᴹˣ(String name);
|
||||||
|
|
||||||
|
void registerᴶᴹˣ(Object mbean, ObjectName objectName);
|
||||||
|
}
|
|
@ -1,15 +1,12 @@
|
||||||
package love.distributedrebirth.bassboonyd.coffin;
|
package love.distributedrebirth.bassboon.ydmod.zombie;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public interface BãßBȍőnCoffin<T extends BãßBȍőnCoffinNail> {
|
public interface BãßBȍőnEnumZombie<T extends BãßBȍőnEnumZombieBullet> {
|
||||||
|
|
||||||
BãßBȍőnCoffinGhost UNHOLY(Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ> familyName);
|
|
||||||
|
|
||||||
Object GET_OBJ(T key);
|
Object GET_OBJ(T key);
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
package love.distributedrebirth.bassboon.ydmod.zombie;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnEnumZombieBullet {
|
||||||
|
|
||||||
|
String name();
|
||||||
|
|
||||||
|
public static final class AutoFire implements BãßBȍőnEnumZombieBullet {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String name() {
|
||||||
|
return getClass().getSimpleName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package love.distributedrebirth.bassboon.ydmod.zombie;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnEnumZombieCorpse<K extends BãßBȍőnEnumZombieBullet> extends BãßBȍőnEnumZombie<K> {
|
||||||
|
|
||||||
|
Object PUT_OBJ(K key, Object value);
|
||||||
|
|
||||||
|
default void PUT_MAP(K key) {
|
||||||
|
PUT_OBJ(key, new HashMap<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
default void PUT_LIST(K key) {
|
||||||
|
PUT_OBJ(key, new ArrayList<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
static <K extends BãßBȍőnEnumZombieBullet> BãßBȍőnEnumZombieCorpse<K> castᴼᶠ(BãßBȍőnEnumZombie<K> zombie) {
|
||||||
|
return (BãßBȍőnEnumZombieCorpse<K>) zombie;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
package love.distributedrebirth.bassboon.ydmod.zombie;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnEnumZombieCorpseLock<K extends BãßBȍőnEnumZombieBullet> extends BãßBȍőnEnumZombieCorpse<K> {
|
||||||
|
|
||||||
|
BãßBȍőnEnumZombie<K> LOCK();
|
||||||
|
|
||||||
|
static <K extends BãßBȍőnEnumZombieBullet> BãßBȍőnEnumZombieCorpseLock<K> castᴼᶠ(BãßBȍőnEnumZombie<K> zombie) {
|
||||||
|
return (BãßBȍőnEnumZombieCorpseLock<K>) zombie;
|
||||||
|
}
|
||||||
|
|
||||||
|
static <Y extends BãßBȍőnEnumZombieBullet> BãßBȍőnEnumZombieCorpseLock<Y> instanceᴺᵉʷ() {
|
||||||
|
Function<Map<Y,Object>,BãßBȍőnEnumZombie<Y>> keyMaker = v -> {
|
||||||
|
Map<Y,Object> frozenFlesh = new HashMap<>(v);
|
||||||
|
for (Y bullet:v.keySet()) {
|
||||||
|
Object deadbeef = frozenFlesh.get(bullet);
|
||||||
|
if (deadbeef instanceof List) {
|
||||||
|
frozenFlesh.put(bullet, Collections.unmodifiableList((List<?>) deadbeef));
|
||||||
|
}
|
||||||
|
if (deadbeef instanceof Map) {
|
||||||
|
frozenFlesh.put(bullet, Collections.unmodifiableMap((Map<?,?>) deadbeef));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new BãßBȍőnEnumZombie<>() {
|
||||||
|
@Override
|
||||||
|
public Object GET_OBJ(Y key) {
|
||||||
|
return frozenFlesh.get(key);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
return new BãßBȍőnEnumZombieCorpseLock<Y>() {
|
||||||
|
private final Map<Y,Object> rottenFlesh = new HashMap<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BãßBȍőnEnumZombie<Y> LOCK() {
|
||||||
|
return keyMaker.apply(rottenFlesh);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object GET_OBJ(Y key) {
|
||||||
|
return rottenFlesh.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object PUT_OBJ(Y key, Object value) {
|
||||||
|
return rottenFlesh.put(key, value);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
package love.distributedrebirth.bassboon.ydmod.zombie;
|
||||||
|
|
||||||
|
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
|
||||||
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||||
|
|
||||||
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
|
public interface BãßBȍőnEnumZombieʸᴰ<T extends BãßBȍőnʸᴰ<T>, K extends BãßBȍőnEnumZombieBullet> extends BãßBȍőnʸᴰ<T> {
|
||||||
|
|
||||||
|
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonBereshit.class})
|
||||||
|
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ<BãßBȍőnEnumZombieʸᴰ<?,?>> {
|
||||||
|
private static final String GHOST_ENUM_ZOMBIE = "枚舉殭屍";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(BãßBȍőnEnumZombieʸᴰ<?,?> boon) {
|
||||||
|
boon.toBBC().UNHOLY_SPELL(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_ENUM_ZOMBIE, BãßBȍőnEnumZombieCorpseLock.instanceᴺᵉʷ());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void lock(BãßBȍőnEnumZombieʸᴰ<?,?> boon) {
|
||||||
|
BãßBȍőnEnumZombie<?> zombie = boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_OBJ(GHOST_ENUM_ZOMBIE, BãßBȍőnEnumZombie.class);
|
||||||
|
zombie = BãßBȍőnEnumZombieCorpseLock.castᴼᶠ(zombie).LOCK();
|
||||||
|
boon.toBBC().UNHOLY_SPELL(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_ENUM_ZOMBIE, zombie);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
default BãßBȍőnEnumZombie<K> toEnumZombie() {
|
||||||
|
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_ENUM_ZOMBIE, BãßBȍőnEnumZombie.class);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,137 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.WeakHashMap;
|
|
||||||
import java.util.concurrent.locks.Lock;
|
|
||||||
import java.util.concurrent.locks.ReadWriteLock;
|
|
||||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffin;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinOpen;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
import love.distributedrebirth.bassboonyd.spider.BãßBȍőnSpider;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface Bãß {
|
|
||||||
|
|
||||||
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
private static final Map<Object, βȍőnGrave> GRAVE_YARD = new WeakHashMap<>();
|
|
||||||
private static final ReadWriteLock FUNERAL = new ReentrantReadWriteLock();
|
|
||||||
|
|
||||||
private Ꝑŕḯṿª₮ḕ() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@SafeVarargs
|
|
||||||
public static final <T, K extends BãßBȍőnCoffinNail> void 魎ᴵᴺᴵᵀ(BãßBȍőnʸᴰ<T,K> boon, Consumer<BãßBȍőnCoffinOpen<K>>...coffinFillers) { // mononoke-init
|
|
||||||
BãßBȍőnPhaseLoader.CAST_BONE_MAGIC(boon, 墳ᴼᶠ(boon).spider, coffinFillers);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static final <T, K extends BãßBȍőnCoffinNail> BãßBȍőnCoffin<K> 殭屍ᴼᶠ(BãßBȍőnʸᴰ<T,K> boon) { // zombie-of
|
|
||||||
return 墳ᴼᶠ(boon).石棺ᴹᵃᵍᶦᶜ(boon.getClass());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final <T, K extends BãßBȍőnCoffinNail> void 鎖ᴳᴿᴬⱽᴱ(BãßBȍőnʸᴰ<T,K> boon) { // lock-grave
|
|
||||||
BãßBȍőnCoffin<K> coffin = boon.toBBC();
|
|
||||||
if (!(coffin instanceof BãßBȍőnCoffinOpen)) {
|
|
||||||
return; // already closed
|
|
||||||
}
|
|
||||||
Lock graveDigger = FUNERAL.readLock();
|
|
||||||
graveDigger.lock();
|
|
||||||
try {
|
|
||||||
GRAVE_YARD.get(boon).棺ᴸᵒᶜᵏ();
|
|
||||||
} finally {
|
|
||||||
graveDigger.unlock();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final βȍőnGrave 墳ᴼᶠ(BãßBȍőnʸᴰ<?,?> boon) { // grave-of
|
|
||||||
βȍőnGrave boonGrave = null;
|
|
||||||
Lock bibleReader = FUNERAL.readLock(); // Can't force enum only, thus no jvm safety
|
|
||||||
bibleReader.lock();
|
|
||||||
try {
|
|
||||||
boonGrave = GRAVE_YARD.get(boon);
|
|
||||||
} finally {
|
|
||||||
bibleReader.unlock();
|
|
||||||
}
|
|
||||||
if (boonGrave == null) {
|
|
||||||
Lock shemiraWriter = FUNERAL.writeLock();
|
|
||||||
shemiraWriter.lock();
|
|
||||||
try {
|
|
||||||
boonGrave = new βȍőnGrave();
|
|
||||||
GRAVE_YARD.put(boon, boonGrave);
|
|
||||||
} finally {
|
|
||||||
shemiraWriter.unlock();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return boonGrave;
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO
|
|
||||||
// public static <T> T 豆ᴺᴱᵂ(Class<T> seedling) {
|
|
||||||
// try {
|
|
||||||
// T boon = seedling.getConstructor().newInstance();
|
|
||||||
// BãßBȍőnLoad殭屍.CAST_BONE_MAGIC(boon);
|
|
||||||
// return boon;
|
|
||||||
// } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
|
|
||||||
// | InvocationTargetException | NoSuchMethodException | SecurityException e) {
|
|
||||||
// throw new RuntimeException(e);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class βȍőnGrave {
|
|
||||||
private final BãßBȍőnSpider spider;
|
|
||||||
private BãßBȍőnCoffin<?> coffin;
|
|
||||||
|
|
||||||
private βȍőnGrave() {
|
|
||||||
this.spider = new BãßBȍőnSpider();
|
|
||||||
this.coffin = BãßBȍőnCoffinOpen.newInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
private <T, K extends BãßBȍőnCoffinNail> BãßBȍőnCoffin<K> 石棺ᴹᵃᵍᶦᶜ(Class<T> coffinType) { // sarcophagus-magic
|
|
||||||
return (BãßBȍőnCoffin<K>) coffin;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void 棺ᴸᵒᶜᵏ() { // coffin-lock
|
|
||||||
coffin = BãßBȍőnCoffinOpen.FROM(coffin).LOCK_COFFIN();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//@ImportStatic(guard = true, reason = "Death to import static name space pollution.")
|
|
||||||
public static final class ℭỗᶇṧⱦᶏꬼȶʂ {
|
|
||||||
|
|
||||||
// 4 is magnetic consent and 3 is forced stable outcome
|
|
||||||
public static final char CHAR_ZERO = '0';
|
|
||||||
public static final char CHAR_ONE = '1';
|
|
||||||
public static final char CHAR_SPACE = ' ';
|
|
||||||
public static final char CHAR_A = 'a';
|
|
||||||
|
|
||||||
public static final String STR_VOID = null;
|
|
||||||
public static final String STR_EMPTY = "";
|
|
||||||
public static final String STR_SPACE = " ";
|
|
||||||
public static final String STR_SPACE_CHINA = "\u3000";
|
|
||||||
|
|
||||||
public static final int INT_ZERO = 0;
|
|
||||||
public static final int INT_ONE = 1;
|
|
||||||
public static final int INT_TEN = 10;
|
|
||||||
|
|
||||||
public static final long LONG_ZERO = 0l;
|
|
||||||
public static final long LONG_ONE = 1l;
|
|
||||||
public static final long LONG_TEN = 10l;
|
|
||||||
|
|
||||||
public static final float FLOAT_ZERO = 0f;
|
|
||||||
public static final float FLOAT_ONE = 1f;
|
|
||||||
public static final float FLOAT_TEN = 10f;
|
|
||||||
|
|
||||||
public static final double DOUBLE_ZERO = 0d;
|
|
||||||
public static final double DOUBLE_ONE = 1d;
|
|
||||||
public static final double DOUBLE_TEN = 10d;
|
|
||||||
|
|
||||||
private ℭỗᶇṧⱦᶏꬼȶʂ() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,129 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnInfo注;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕPhase注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
@BãßBȍőnInfo注(purpose = "phase barriers are just scanned markers thus extensible by injection of an order number")
|
|
||||||
public interface BãßBȍőnPhaseBarrierʸᴰ<T, K extends BãßBȍőnCoffinNail> extends BãßBȍőnʸᴰ<T, K> {
|
|
||||||
|
|
||||||
public static final class שְׁלֹמֹה {
|
|
||||||
// default internal framework boon phases
|
|
||||||
protected static final int BOON_VOID = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
|
|
||||||
protected static final int BOON_BERESHIT = BOON_VOID + Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
|
|
||||||
protected static final int BOON_LAW = BOON_BERESHIT * Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_TEN;
|
|
||||||
protected static final int BOON_MARRIAGE = BOON_LAW + Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
|
|
||||||
// default external implementation boon phases
|
|
||||||
protected static final int LIFE_QUADRANT_仙 = 00+00+00+1+2+3+4+5+6+7+8+9;
|
|
||||||
protected static final int LIFE_QUADRANT_上 = 10+11+12+13+14+15+16+17+18;
|
|
||||||
protected static final int LIFE_QUADRANT_主 = 19+20+21+22+23+24+25+26+27;
|
|
||||||
protected static final int LIFE_QUADRANT_天 = 28+29+30+31+32+33+34+35+36;
|
|
||||||
protected static final int LIFE_יהוה = LIFE_QUADRANT_仙 + LIFE_QUADRANT_上 + LIFE_QUADRANT_主 + LIFE_QUADRANT_天;
|
|
||||||
|
|
||||||
private שְׁלֹמֹה() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕPhase注(order = BãßBȍőnPhaseBarrierʸᴰ.שְׁלֹמֹה.BOON_VOID)
|
|
||||||
public static final class βrahmanBoonVoid implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private βrahmanBoonVoid() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {})
|
|
||||||
private static void initPhase(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕPhase注(order = BãßBȍőnPhaseBarrierʸᴰ.שְׁלֹמֹה.BOON_BERESHIT)
|
|
||||||
public static final class βrahmanBoonBereshit implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private βrahmanBoonBereshit() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {})
|
|
||||||
private static void initPhase(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕPhase注(order = BãßBȍőnPhaseBarrierʸᴰ.שְׁלֹמֹה.BOON_LAW)
|
|
||||||
public static final class βrahmanBoonLaw implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private βrahmanBoonLaw() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {})
|
|
||||||
private static void initPhase(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕPhase注(order = BãßBȍőnPhaseBarrierʸᴰ.שְׁלֹמֹה.BOON_MARRIAGE)
|
|
||||||
public static final class βrahmanBoonMarriage implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private βrahmanBoonMarriage() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {})
|
|
||||||
private static void initPhase(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕPhase注(order = BãßBȍőnPhaseBarrierʸᴰ.שְׁלֹמֹה.LIFE_QUADRANT_仙)
|
|
||||||
public static final class βrahmanLifeQuadrant仙 implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private βrahmanLifeQuadrant仙() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {})
|
|
||||||
private static void initPhase(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕPhase注(order = BãßBȍőnPhaseBarrierʸᴰ.שְׁלֹמֹה.LIFE_QUADRANT_上)
|
|
||||||
public static final class βrahmanLifeQuadrant上 implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private βrahmanLifeQuadrant上() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {})
|
|
||||||
private static void initPhase(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕPhase注(order = BãßBȍőnPhaseBarrierʸᴰ.שְׁלֹמֹה.LIFE_QUADRANT_主)
|
|
||||||
public static final class βrahmanLifeQuadrant主 implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private βrahmanLifeQuadrant主() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {})
|
|
||||||
private static void initPhase(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕPhase注(order = BãßBȍőnPhaseBarrierʸᴰ.שְׁלֹמֹה.LIFE_QUADRANT_天)
|
|
||||||
public static final class βrahmanLifeQuadrant天 implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private βrahmanLifeQuadrant天() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {})
|
|
||||||
private static void initPhase(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕPhase注(order = BãßBȍőnPhaseBarrierʸᴰ.שְׁלֹמֹה.LIFE_יהוה)
|
|
||||||
public static final class βrahmanLifeInit implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private βrahmanLifeInit() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {})
|
|
||||||
private static void initPhase(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,192 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinOpen;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕPhase注;
|
|
||||||
import love.distributedrebirth.bassboonyd.spider.BãßBȍőnSpider;
|
|
||||||
import love.distributedrebirth.bassboonyd.spider.BãßBȍőnSpiderEgg注;
|
|
||||||
import love.distributedrebirth.bassboonyd.spider.BãßBȍőnSpiderSilk;
|
|
||||||
import love.distributedrebirth.bassboonyd.spider.BãßBȍőnSpiderWire注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public final class BãßBȍőnPhaseLoader {
|
|
||||||
|
|
||||||
private BãßBȍőnPhaseLoader() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@SafeVarargs
|
|
||||||
protected static <T, K extends BãßBȍőnCoffinNail> void CAST_BONE_MAGIC(BãßBȍőnʸᴰ<T,K> boon, BãßBȍőnSpider spider, Consumer<BãßBȍőnCoffinOpen<K>>...coffinFillers) {
|
|
||||||
BãßBȍőnCoffinOpen<K> bbc = BãßBȍőnCoffinOpen.FROM(boon);
|
|
||||||
try {
|
|
||||||
for (Consumer<BãßBȍőnCoffinOpen<K>> embalmFactory:coffinFillers) {
|
|
||||||
embalmFactory.accept(bbc);
|
|
||||||
}
|
|
||||||
initPrivate(boon);
|
|
||||||
initSpiderEggs(boon, spider);
|
|
||||||
initSpiderWires(boon, spider);
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void initSpiderWires(Object boon, BãßBȍőnSpider spider) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
|
||||||
//System.out.println("SCAN-BOON-FIELD: "+boon.getClass().getSimpleName());
|
|
||||||
for (Field m:boon.getClass().getDeclaredFields()) {
|
|
||||||
if (!m.isAnnotationPresent(BãßBȍőnSpiderWire注.class)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
BãßBȍőnSpiderWire注 anno = m.getAnnotation(BãßBȍőnSpiderWire注.class);
|
|
||||||
BãßBȍőnSpiderSilk silkRoad = spider.silkRoad(m.getType());
|
|
||||||
Object bean = silkRoad.senseWire(boon, anno.name(), anno.description());
|
|
||||||
//System.out.println("type: "+ m.getType() +" wth name: "+anno.name()+" of boon: "+boon.getClass());
|
|
||||||
|
|
||||||
m.setAccessible(true);
|
|
||||||
m.set(boon, bean);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static <T, K extends BãßBȍőnCoffinNail> void initSpiderEggs(BãßBȍőnʸᴰ<T,K> boon, BãßBȍőnSpider spider) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
|
||||||
for (Class<?> interfaceClass:walkInterfaces(boon.getClass(), new LinkedHashSet<>())) {
|
|
||||||
for (Class<?> declaredClass:((Class<?>) interfaceClass).getDeclaredClasses()) {
|
|
||||||
initSpiderEggRegistrate(boon, spider, declaredClass);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (Class<?> declaredClass:boon.getClass().getDeclaredClasses()) {
|
|
||||||
initSpiderEggRegistrate(boon, spider, declaredClass);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static <T, K extends BãßBȍőnCoffinNail> void initSpiderEggRegistrate(BãßBȍőnʸᴰ<T,K> boon, BãßBȍőnSpider spider, Class<?> declaredClass) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
|
||||||
if (!BãßBȍőnꝐŕḯṿª₮ḕ.class.isAssignableFrom(declaredClass)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (Method m:declaredClass.getDeclaredMethods()) {
|
|
||||||
if (!m.isAnnotationPresent(BãßBȍőnSpiderEgg注.class)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
//System.out.println("annoEgg: "+boon.getClass().getSimpleName()+"."+boon+" from: "+declaredClass.getName()+" m="+m.toGenericString());
|
|
||||||
|
|
||||||
m.setAccessible(true);
|
|
||||||
spider.registrateEgg(m.getReturnType(), m);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class InitPhase {
|
|
||||||
private Class<?> privateClass;
|
|
||||||
private Method initMethod;
|
|
||||||
|
|
||||||
private InitPhase(Class<?> privateClass, Method initMethod) {
|
|
||||||
this.privateClass = privateClass;
|
|
||||||
this.initMethod = initMethod;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static <T, K extends BãßBȍőnCoffinNail> void initPrivate(BãßBȍőnʸᴰ<T,K> boon) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
|
||||||
|
|
||||||
//System.out.println("INIT "+boon.getClass().getName());
|
|
||||||
List<InitPhase> boonInits = new ArrayList<>();
|
|
||||||
List<InitPhase> serviceInits = new ArrayList<>();
|
|
||||||
walkPrivate(boon, v -> {
|
|
||||||
//System.out.println("INIT.SCAN "+v.getName());
|
|
||||||
BãßBȍőnꝐŕḯṿª₮ḕPhase注 anno = v.getAnnotation(BãßBȍőnꝐŕḯṿª₮ḕPhase注.class);
|
|
||||||
for (Method m:v.getDeclaredMethods()) {
|
|
||||||
if (m.isAnnotationPresent(BãßBȍőnꝐŕḯṿª₮ḕInit注.class)) {
|
|
||||||
if (anno != null) {
|
|
||||||
boonInits.add(new InitPhase(v, m));
|
|
||||||
} else {
|
|
||||||
serviceInits.add(new InitPhase(v, m));
|
|
||||||
}
|
|
||||||
//System.out.println("INIT.ADD "+v.getName()+"."+m.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
boonInits.sort(new Comparator<InitPhase>() {
|
|
||||||
@Override
|
|
||||||
public int compare(InitPhase p0, InitPhase p1) {
|
|
||||||
BãßBȍőnꝐŕḯṿª₮ḕPhase注 anno0 = p0.privateClass.getAnnotation(BãßBȍőnꝐŕḯṿª₮ḕPhase注.class);
|
|
||||||
BãßBȍőnꝐŕḯṿª₮ḕPhase注 anno1 = p1.privateClass.getAnnotation(BãßBȍőnꝐŕḯṿª₮ḕPhase注.class);
|
|
||||||
return Integer.compare(anno0.order(), anno1.order());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
List<InitPhase> orderedInits = new ArrayList<>();
|
|
||||||
for (InitPhase startupPhase:boonInits) {
|
|
||||||
orderedInits.add(startupPhase);
|
|
||||||
for (InitPhase v:new ArrayList<>(serviceInits)) {
|
|
||||||
int deps = 0;
|
|
||||||
BãßBȍőnꝐŕḯṿª₮ḕInit注 anno = v.initMethod.getAnnotation(BãßBȍőnꝐŕḯṿª₮ḕInit注.class);
|
|
||||||
for (Class<?> clazz:anno.dependencies()) {
|
|
||||||
for (InitPhase doneInit:orderedInits) {
|
|
||||||
if (clazz.equals(doneInit.privateClass)) {
|
|
||||||
deps++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (deps == anno.dependencies().length) {
|
|
||||||
orderedInits.add(v);
|
|
||||||
serviceInits.remove(v);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
orderedInits.addAll(serviceInits); // left over ?
|
|
||||||
|
|
||||||
for (InitPhase v:orderedInits) {
|
|
||||||
Method m = v.initMethod;
|
|
||||||
//System.out.println("INIT.RUN "+v.privateClass.getName()+"."+m.getName());
|
|
||||||
m.setAccessible(true);
|
|
||||||
Class<?>[] para = m.getParameterTypes();
|
|
||||||
if (para.length == 0) {
|
|
||||||
m.invoke(null);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (para.length == 1 && BãßBȍőnʸᴰ.class.isAssignableFrom(para[0])) {
|
|
||||||
m.invoke(null, boon);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
throw new IllegalStateException("Unknown method parameters on: "+v.privateClass.getSimpleName()+"."+m.toGenericString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static <T, K extends BãßBȍőnCoffinNail> void walkPrivate(BãßBȍőnʸᴰ<T,K> boon, Consumer<Class<?>> runPrivate) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
|
||||||
for (Class<?> interfaceClass:walkInterfaces(boon.getClass(), new LinkedHashSet<>())) {
|
|
||||||
for (Class<?> declaredClass:interfaceClass.getDeclaredClasses()) {
|
|
||||||
if (!BãßBȍőnꝐŕḯṿª₮ḕ.class.isAssignableFrom(declaredClass)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
runPrivate.accept(declaredClass);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (Class<?> declaredClass:boon.getClass().getDeclaredClasses()) {
|
|
||||||
if (!BãßBȍőnꝐŕḯṿª₮ḕ.class.isAssignableFrom(declaredClass)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
runPrivate.accept(declaredClass);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Set<Class<?>> walkInterfaces(Class<?> clazz, Set<Class<?>> result) {
|
|
||||||
while (clazz != null) {
|
|
||||||
for (Class<?> next : clazz.getInterfaces()) {
|
|
||||||
if (result.add(next)) {
|
|
||||||
walkInterfaces(next, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
clazz = clazz.getSuperclass();
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffin;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface BãßBȍőnʸᴰ<T, K extends BãßBȍőnCoffinNail> {
|
|
||||||
|
|
||||||
default BãßBȍőnCoffin<K> toBBC() {
|
|
||||||
return Bãß.Ꝑŕḯṿª₮ḕ.殭屍ᴼᶠ(this);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAnnotationʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthorʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnInfoʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnPackageʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface DefaultBãßBȍőnʸᴰ<T, K extends BãßBȍőnCoffinNail> extends
|
|
||||||
BãßBȍőnʸᴰ<T,K>,
|
|
||||||
BãßBȍőnPhaseBarrierʸᴰ<T,K>,
|
|
||||||
BãßBȍőnInfoʸᴰ<T,K>,
|
|
||||||
BãßBȍőnAuthorʸᴰ<T,K>,
|
|
||||||
BãßBȍőnPackageʸᴰ<T,K>,
|
|
||||||
BãßBȍőnAnnotationʸᴰ<T,K>
|
|
||||||
{
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface DefaultEnumInstanceʸᴰ<T, K extends BãßBȍőnCoffinNail> extends DefaultEnumBaseʸᴰ<T,K> {
|
|
||||||
|
|
||||||
default T BãßInstance() {
|
|
||||||
return BãßInstances()[Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO];
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.clazz;
|
|
||||||
|
|
||||||
import java.lang.annotation.Annotation;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnPhaseLoader;
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnPhaseBarrierʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface BãßBȍőnAnnotationʸᴰ<T, K extends BãßBȍőnCoffinNail> extends BãßBȍőnʸᴰ<T, K> {
|
|
||||||
|
|
||||||
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private Ꝑŕḯṿª₮ḕ() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {BãßBȍőnPhaseBarrierʸᴰ.βrahmanBoonLaw.class})
|
|
||||||
private static void init(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
for (Class<?> interfaceClass:BãßBȍőnPhaseLoader.walkInterfaces(boon.getClass(), new LinkedHashSet<>())) {
|
|
||||||
BãßBȍőnAnnotation注 anno = interfaceClass.getAnnotation(BãßBȍőnAnnotation注.class);
|
|
||||||
if (anno == null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (Class<? extends Annotation> required:anno.required()) {
|
|
||||||
if (!boon.getClass().isAnnotationPresent(required)) {
|
|
||||||
throw new IllegalStateException("Missing required annotation: "+required.getSimpleName()+" on: "+boon.getClass().getSimpleName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.clazz;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnPhaseBarrierʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
@BãßBȍőnAnnotation注(optional = {BãßBȍőnAuthor注.class})
|
|
||||||
public interface BãßBȍőnAuthorʸᴰ<T, K extends BãßBȍőnCoffinNail> extends BãßBȍőnʸᴰ<T,K> {
|
|
||||||
|
|
||||||
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
private static final String GHOST_KEY_AUTHOR_NAME = "authorName";
|
|
||||||
private static final String GHOST_KEY_AUTHOR_COPYRIGHT = "authorCopyright";
|
|
||||||
private static final String DEFAULT_AUTHOR_NAME = "奴隸來自 仙上主天";
|
|
||||||
private static final String DEFAULT_AUTHOR_COPYRIGHT = "©Δ∞ 仙上主天";
|
|
||||||
|
|
||||||
private Ꝑŕḯṿª₮ḕ() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {BãßBȍőnPhaseBarrierʸᴰ.βrahmanBoonLaw.class})
|
|
||||||
private static void init(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
BãßBȍőnAuthor注 anno = boon.getClass().getAnnotation(BãßBȍőnAuthor注.class);
|
|
||||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_AUTHOR_NAME, anno!=null?anno.name():DEFAULT_AUTHOR_NAME);
|
|
||||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_AUTHOR_COPYRIGHT, anno!=null?anno.copyright():DEFAULT_AUTHOR_COPYRIGHT);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
default String BãßAuthorNaam() {
|
|
||||||
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_KEY_AUTHOR_NAME);
|
|
||||||
}
|
|
||||||
|
|
||||||
default String BãßAuthorKopieërRecht() {
|
|
||||||
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_KEY_AUTHOR_COPYRIGHT);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.clazz;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnPhaseBarrierʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
@BãßBȍőnAnnotation注(optional = {BãßBȍőnInfo注.class})
|
|
||||||
public interface BãßBȍőnInfoʸᴰ<T, K extends BãßBȍőnCoffinNail> extends BãßBȍőnʸᴰ<T, K> {
|
|
||||||
|
|
||||||
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
private static final String GHOST_KEY_BEAN_NAME = "beanName";
|
|
||||||
private static final String GHOST_KEY_BEAN_PURPOSE = "beanPurpose";
|
|
||||||
private static final String DEFAULT_BEAN_PURPOSE = "Undefined";
|
|
||||||
|
|
||||||
private Ꝑŕḯṿª₮ḕ() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {BãßBȍőnPhaseBarrierʸᴰ.βrahmanBoonLaw.class})
|
|
||||||
private static void init(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
BãßBȍőnInfo注 anno = boon.getClass().getAnnotation(BãßBȍőnInfo注.class);
|
|
||||||
String beanName = boon.getClass().getSimpleName();
|
|
||||||
String beanPurpose = DEFAULT_BEAN_PURPOSE;
|
|
||||||
if (anno != null && !anno.name().isBlank()) {
|
|
||||||
beanName = anno.name();
|
|
||||||
}
|
|
||||||
if (anno != null && !anno.purpose().isBlank()) {
|
|
||||||
beanPurpose = anno.purpose();
|
|
||||||
}
|
|
||||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_BEAN_NAME, beanName);
|
|
||||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_BEAN_PURPOSE, beanPurpose);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
default String BãßInfoNaam() {
|
|
||||||
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_KEY_BEAN_NAME);
|
|
||||||
}
|
|
||||||
|
|
||||||
default String BãßInfoDoel() {
|
|
||||||
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_KEY_BEAN_PURPOSE);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.clazz;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnPhaseBarrierʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
@BãßBȍőnAnnotation注(optional = {BãßBȍőnPackage注.class})
|
|
||||||
public interface BãßBȍőnPackageʸᴰ<T, K extends BãßBȍőnCoffinNail> extends BãßBȍőnʸᴰ<T, K> {
|
|
||||||
|
|
||||||
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
private static final String GHOST_KEY_PACKAGE_NAME = "packageName";
|
|
||||||
|
|
||||||
private Ꝑŕḯṿª₮ḕ() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {BãßBȍőnPhaseBarrierʸᴰ.βrahmanBoonLaw.class})
|
|
||||||
private static void init(BãßBȍőnʸᴰ<?,?> boon) {
|
|
||||||
BãßBȍőnPackage注 anno = boon.getClass().getAnnotation(BãßBȍőnPackage注.class);
|
|
||||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_PACKAGE_NAME, anno!=null?anno.name():boon.getClass().getPackage().getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
default String BãßPackageNaam() {
|
|
||||||
return toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_KEY_PACKAGE_NAME);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.coffin;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface BãßBȍőnCoffinNail {
|
|
||||||
|
|
||||||
String name();
|
|
||||||
|
|
||||||
public static final class None implements BãßBȍőnCoffinNail {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String name() {
|
|
||||||
return BãßBȍőnCoffinNail.class.getSimpleName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,126 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.coffin;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface BãßBȍőnCoffinOpen<T extends BãßBȍőnCoffinNail> extends BãßBȍőnCoffin<T> {
|
|
||||||
|
|
||||||
BãßBȍőnCoffin<T> LOCK_COFFIN();
|
|
||||||
|
|
||||||
Object PUT_OBJ(T key, Object value);
|
|
||||||
|
|
||||||
default void PUT_MAP(T key) {
|
|
||||||
PUT_OBJ(key, new HashMap<>());
|
|
||||||
}
|
|
||||||
|
|
||||||
default void PUT_LIST(T key) {
|
|
||||||
PUT_OBJ(key, new ArrayList<>());
|
|
||||||
}
|
|
||||||
|
|
||||||
static <X, K extends BãßBȍőnCoffinNail> BãßBȍőnCoffinOpen<K> FROM(BãßBȍőnʸᴰ<X,K> boon) {
|
|
||||||
return FROM(boon.toBBC());
|
|
||||||
}
|
|
||||||
|
|
||||||
static <K extends BãßBȍőnCoffinNail> BãßBȍőnCoffinOpen<K> FROM(BãßBȍőnCoffin<K> bbc) {
|
|
||||||
return (BãßBȍőnCoffinOpen<K>) bbc;
|
|
||||||
}
|
|
||||||
|
|
||||||
static class BãßBȍőnFamilyGrave implements BãßBȍőnCoffinGhost {
|
|
||||||
private final Map<String,Object> ghosts = new HashMap<>();
|
|
||||||
//private volatile boolean deathLock = false;
|
|
||||||
|
|
||||||
//public void LOCK_GHOST() {
|
|
||||||
// deathLock = true;
|
|
||||||
//}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object PUT_GHOST(String key, Object value) {
|
|
||||||
//if (deathLock) {
|
|
||||||
// throw new IllegalStateException("Can't restore body of family ghost.");
|
|
||||||
//}
|
|
||||||
return ghosts.put(key, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object GHOST_OBJ(String key) {
|
|
||||||
return ghosts.get(key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static <Y extends BãßBȍőnCoffinNail> BãßBȍőnCoffinOpen<Y> newInstance() {
|
|
||||||
return new BãßBȍőnCoffinOpen<Y>() {
|
|
||||||
private final Map<Y,Object> corpseParts = new HashMap<>();
|
|
||||||
private final Map<Class<?>,BãßBȍőnFamilyGrave> familyGrave = new HashMap<>();
|
|
||||||
private volatile boolean deathLock = false;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BãßBȍőnCoffin<Y> LOCK_COFFIN() {
|
|
||||||
deathLock = true;
|
|
||||||
//for (BãßBȍőnFamilyGrave grave:familyGrave.values()) {
|
|
||||||
// grave.LOCK_GHOST();
|
|
||||||
//}
|
|
||||||
return createProxy();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object GET_OBJ(Y key) {
|
|
||||||
return corpseParts.get(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object PUT_OBJ(Y key, Object value) {
|
|
||||||
if (deathLock) {
|
|
||||||
throw new IllegalStateException("Can't put body parts in closed coffin.");
|
|
||||||
}
|
|
||||||
return corpseParts.put(key, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BãßBȍőnCoffinGhost UNHOLY(Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ> familyName) {
|
|
||||||
BãßBȍőnFamilyGrave familyGhosts = familyGrave.get(familyName);
|
|
||||||
if (familyGhosts == null) {
|
|
||||||
//if (deathLock) {
|
|
||||||
// throw new IllegalStateException("Can't add more death in closed coffin, its unholy.");
|
|
||||||
//}
|
|
||||||
familyGhosts = new BãßBȍőnFamilyGrave();
|
|
||||||
familyGrave.put(familyName, familyGhosts);
|
|
||||||
}
|
|
||||||
return familyGhosts;
|
|
||||||
}
|
|
||||||
|
|
||||||
private BãßBȍőnCoffin<Y> createProxy() {
|
|
||||||
final BãßBȍőnCoffin<Y> local = this;
|
|
||||||
/*
|
|
||||||
ClassLoader cl = Thread.currentThread().getContextClassLoader();
|
|
||||||
if (cl == null) {
|
|
||||||
cl = BãßBȍőnCoffinOpenʸᴰ.class.getClassLoader();
|
|
||||||
}
|
|
||||||
return (BãßBȍőnCoffinʸᴰ<Y>) Proxy.newProxyInstance(cl, new Class[]{BãßBȍőnCoffinʸᴰ.class}, new InvocationHandler() {
|
|
||||||
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
|
|
||||||
Method localMethod = local.getClass().getMethod(method.getName(), method.getParameterTypes());
|
|
||||||
return localMethod.invoke(local, args);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
return new BãßBȍőnCoffin<Y>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BãßBȍőnCoffinGhost UNHOLY(Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ> familyName) {
|
|
||||||
return local.UNHOLY(familyName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object GET_OBJ(Y key) {
|
|
||||||
return local.GET_OBJ(key);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,72 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnPhaseBarrierʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.DefaultEnumBaseʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAnnotation注;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnInfo注;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffin;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
|
||||||
import love.distributedrebirth.bassboonyd.spider.BãßBȍőnSpiderEgg注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
@BãßBȍőnAnnotation注(required = {BãßBȍőnInfo注.class})
|
|
||||||
public interface DefaultEnumBaseᴶᴹˣ<T,K extends BãßBȍőnCoffinNail> extends DefaultEnumBaseʸᴰ<T,K> {
|
|
||||||
|
|
||||||
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
protected static final String STR_NAME = "name";
|
|
||||||
protected static final String STR_TYPE = "type";
|
|
||||||
protected static final String STR_DOT = ".";
|
|
||||||
protected static final String STR_COLON = ":";
|
|
||||||
protected static final String STR_IS = "=";
|
|
||||||
protected static final String STR_COMMA = ",";
|
|
||||||
private static final String GHOST_KEY_JMX = "JMX";
|
|
||||||
|
|
||||||
private Ꝑŕḯṿª₮ḕ() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {BãßBȍőnPhaseBarrierʸᴰ.βrahmanBoonBereshit.class})
|
|
||||||
private static void init(DefaultEnumBaseᴶᴹˣ<?,?> boon) {
|
|
||||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX, new HashMap<>());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static <X> X buildJmxGhost(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, X result) {
|
|
||||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX).put(name, result);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnSpiderEgg注()
|
|
||||||
private static CounterGuageᴶᴹˣ buildGuageCounter(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, String description) {
|
|
||||||
return buildJmxGhost(boon, name, new CounterGuageᴶᴹˣ(name, description));
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnSpiderEgg注()
|
|
||||||
private static AttributeStringᴶᴹˣ buildStringAttribute(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, String description) {
|
|
||||||
return buildJmxGhost(boon, name, new AttributeStringᴶᴹˣ(name, description));
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnSpiderEgg注()
|
|
||||||
private static AttributeBooleanᴶᴹˣ buildBooleanAttribute(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, String description) {
|
|
||||||
return buildJmxGhost(boon, name, new AttributeBooleanᴶᴹˣ(name, description));
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnSpiderEgg注()
|
|
||||||
private static AttributeIntegerᴶᴹˣ buildIntegerAttribute(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, String description) {
|
|
||||||
return buildJmxGhost(boon, name, new AttributeIntegerᴶᴹˣ(name, description));
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnSpiderEgg注()
|
|
||||||
private static AttributeLongᴶᴹˣ buildLongAttribute(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, String description) {
|
|
||||||
return buildJmxGhost(boon, name, new AttributeLongᴶᴹˣ(name, description));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Map<String, Object> jmxGhosts(BãßBȍőnCoffin<?> BBC) {
|
|
||||||
return BBC.UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
|
||||||
|
|
||||||
import java.lang.management.ManagementFactory;
|
|
||||||
|
|
||||||
import javax.management.MBeanServer;
|
|
||||||
import javax.management.ObjectName;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnPhaseBarrierʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.DefaultEnumInstanceʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface DefaultEnumInstanceᴶᴹˣ<T,K extends BãßBȍőnCoffinNail> extends DefaultEnumBaseᴶᴹˣ<T,K>,DefaultEnumInstanceʸᴰ<T,K> {
|
|
||||||
|
|
||||||
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private Ꝑŕḯṿª₮ḕ() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {BãßBȍőnPhaseBarrierʸᴰ.βrahmanBoonMarriage.class})
|
|
||||||
private static void init(DefaultEnumBaseᴶᴹˣ<?,?> boon) {
|
|
||||||
try {
|
|
||||||
StringBuilder name = new StringBuilder();
|
|
||||||
name.append(boon.BãßPackageNaam());
|
|
||||||
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_COLON);
|
|
||||||
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_TYPE);
|
|
||||||
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_IS);
|
|
||||||
name.append(boon.BãßInfoNaam());
|
|
||||||
|
|
||||||
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
|
||||||
ObjectName objectName = new ObjectName(name.toString());
|
|
||||||
server.registerMBean(new MBeanDynamicᴶᴹˣ(boon.BãßInfoDoel(), DefaultEnumBaseᴶᴹˣ.jmxGhosts(boon.toBBC())), objectName);
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.jmx;
|
|
||||||
|
|
||||||
import java.lang.management.ManagementFactory;
|
|
||||||
|
|
||||||
import javax.management.MBeanServer;
|
|
||||||
import javax.management.ObjectName;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnPhaseBarrierʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.DefaultEnumSetʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
import love.distributedrebirth.bassboonyd.coffin.BãßBȍőnCoffinNail;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|
||||||
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface DefaultEnumSetᴶᴹˣ<T,K extends BãßBȍőnCoffinNail> extends DefaultEnumBaseᴶᴹˣ<T,K>,DefaultEnumSetʸᴰ<T,K> {
|
|
||||||
|
|
||||||
public static final class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
|
|
||||||
private Ꝑŕḯṿª₮ḕ() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BãßBȍőnꝐŕḯṿª₮ḕInit注(dependencies = {BãßBȍőnPhaseBarrierʸᴰ.βrahmanBoonMarriage.class})
|
|
||||||
private static void init(DefaultEnumBaseᴶᴹˣ<?,?> boon) {
|
|
||||||
try {
|
|
||||||
StringBuilder name = new StringBuilder();
|
|
||||||
name.append(boon.BãßPackageNaam());
|
|
||||||
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_COLON);
|
|
||||||
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_TYPE);
|
|
||||||
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_IS);
|
|
||||||
name.append(boon.BãßInfoNaam());
|
|
||||||
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_COMMA);
|
|
||||||
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_NAME);
|
|
||||||
name.append(DefaultEnumBaseᴶᴹˣ.Ꝑŕḯṿª₮ḕ.STR_IS);
|
|
||||||
name.append(boon.BȍőnNaam());
|
|
||||||
|
|
||||||
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
|
||||||
ObjectName objectName = new ObjectName(name.toString());
|
|
||||||
server.registerMBean(new MBeanDynamicᴶᴹˣ(boon.BãßInfoDoel(), DefaultEnumBaseᴶᴹˣ.jmxGhosts(boon.toBBC())), objectName);
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.sinit;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface BãßBȍőnꝐŕḯṿª₮ḕ {
|
|
||||||
// note: eclipse ide does not want to refactor items with the name "Ꝑŕḯṿª₮ḕ" in it.
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.sinit;
|
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.RetentionPolicy;
|
|
||||||
import java.lang.annotation.Target;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnPhaseBarrierʸᴰ;
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Target({ElementType.METHOD})
|
|
||||||
public @interface BãßBȍőnꝐŕḯṿª₮ḕInit注 {
|
|
||||||
|
|
||||||
Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ>[] dependencies() default {BãßBȍőnPhaseBarrierʸᴰ.βrahmanLifeInit.class};
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
package love.distributedrebirth.bassboonyd.spider;
|
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
||||||
public interface BãßBȍőnSpiderSilk {
|
|
||||||
|
|
||||||
Object senseWire(Object boon, String name, String description) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException;
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.imxmi;
|
package love.distributedrebirth.imxmi;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class ImXmiSetup {
|
public class ImXmiSetup {
|
||||||
|
|
|
@ -2,7 +2,7 @@ package love.distributedrebirth.imxmi.lang;
|
||||||
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
abstract public class AbstractImComponentDataˣᴹᴵ implements ImComponentDataˣᴹᴵ {
|
abstract public class AbstractImComponentDataˣᴹᴵ implements ImComponentDataˣᴹᴵ {
|
||||||
|
|
|
@ -3,7 +3,7 @@ package love.distributedrebirth.imxmi.lang;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
abstract public class AbstractImComponentSetˣᴹᴵ implements ImComponentSetˣᴹᴵ {
|
abstract public class AbstractImComponentSetˣᴹᴵ implements ImComponentSetˣᴹᴵ {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package love.distributedrebirth.imxmi.lang;
|
package love.distributedrebirth.imxmi.lang;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
abstract public class AbstractImComponentˣᴹᴵ implements ImComponentˣᴹᴵ {
|
abstract public class AbstractImComponentˣᴹᴵ implements ImComponentˣᴹᴵ {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package love.distributedrebirth.imxmi.lang;
|
package love.distributedrebirth.imxmi.lang;
|
||||||
|
|
||||||
import imgui.ImGui;
|
import imgui.ImGui;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class ImButtonˣᴹᴵ extends AbstractImComponentˣᴹᴵ {
|
public class ImButtonˣᴹᴵ extends AbstractImComponentˣᴹᴵ {
|
||||||
|
|
|
@ -2,7 +2,7 @@ package love.distributedrebirth.imxmi.lang;
|
||||||
|
|
||||||
import imgui.ImGui;
|
import imgui.ImGui;
|
||||||
import imgui.type.ImInt;
|
import imgui.type.ImInt;
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public class ImComboˣᴹᴵ extends AbstractImComponentˣᴹᴵ {
|
public class ImComboˣᴹᴵ extends AbstractImComponentˣᴹᴵ {
|
||||||
|
|
|
@ -2,7 +2,7 @@ package love.distributedrebirth.imxmi.lang;
|
||||||
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
|
||||||
|
|
||||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||||
public interface ImComponentDataˣᴹᴵ extends ImComponentˣᴹᴵ {
|
public interface ImComponentDataˣᴹᴵ extends ImComponentˣᴹᴵ {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue