2022-10-20 03:06:56 +02:00
|
|
|
package love.distributedrebirth.bassboon;
|
|
|
|
|
|
2022-10-30 08:26:14 +01:00
|
|
|
import java.lang.instrument.Instrumentation;
|
2022-10-20 23:04:45 +02:00
|
|
|
import java.lang.reflect.InvocationTargetException;
|
2022-10-20 03:06:56 +02:00
|
|
|
import java.util.ArrayList;
|
2022-10-24 14:34:30 +02:00
|
|
|
import java.util.Collections;
|
2022-10-20 03:06:56 +02:00
|
|
|
import java.util.HashMap;
|
2022-10-24 14:34:30 +02:00
|
|
|
import java.util.List;
|
2022-10-20 03:06:56 +02:00
|
|
|
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;
|
|
|
|
|
|
2022-10-30 08:26:14 +01:00
|
|
|
import love.distributedrebirth.bassboon.clazz.BãßBȍőnExport注;
|
2022-10-20 03:06:56 +02:00
|
|
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ;
|
2022-10-20 23:04:45 +02:00
|
|
|
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª₮ḕ響ᴼᶠ;
|
2022-10-20 03:06:56 +02:00
|
|
|
import love.distributedrebirth.bassboon.death.BãßBȍőnCoffin;
|
2022-10-22 02:55:03 +02:00
|
|
|
import love.distributedrebirth.bassboon.death.BãßBȍőnCoffinDuytschenᵗˣᵗ;
|
2022-10-20 03:06:56 +02:00
|
|
|
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;
|
2022-10-24 14:34:30 +02:00
|
|
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderSperm;
|
2022-10-30 08:26:14 +01:00
|
|
|
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
|
2022-10-30 23:14:53 +01:00
|
|
|
import love.distributedrebirth.bassboon.java.util.concurrent.locks.DummyReadWriteLock;
|
|
|
|
|
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ObjectScopeLimitΔ邪ᙾ;
|
|
|
|
|
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.Runnableբ;
|
|
|
|
|
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.BabelLocalizer邪ᙾ;
|
|
|
|
|
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
|
2022-10-31 00:32:01 +01:00
|
|
|
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocConstructor注;
|
|
|
|
|
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocMethod注;
|
|
|
|
|
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocType注;
|
|
|
|
|
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDoc注;
|
2022-10-30 23:14:53 +01:00
|
|
|
import ᴶᐩᐩ.ᔿᐤᑊᐣ.ᒢᔿᕽ.CounterGuageᴶᴹˣ;
|
|
|
|
|
import ᴶᐩᐩ.ᔿᐤᑊᐣ.ᣔᒃᣔᒼᓑᔆ.BãßBȍőnAbacusInstanceMBeanʸᴰ;
|
2022-10-20 03:06:56 +02:00
|
|
|
|
2022-10-30 16:59:24 +01:00
|
|
|
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
2022-10-31 00:32:01 +01:00
|
|
|
@DuytsDocType注(babel = {
|
|
|
|
|
@DuytsDoc注(locale= "en", purpose = "Runtime for static bass noise ௸.."),
|
|
|
|
|
@DuytsDoc注(locale= "zh", code = "低音", purpose = "來自天堂的靜態低音噪音的運行時間"),
|
|
|
|
|
@DuytsDoc注(locale= "hi", code = "बास", purpose = "स्वर्ग से स्थिर बास शोर के लिए रनटाइम")
|
|
|
|
|
})
|
2022-10-20 03:06:56 +02:00
|
|
|
public interface Bãß {
|
|
|
|
|
|
2022-10-31 00:32:01 +01:00
|
|
|
@DuytsDocType注(babel = {
|
|
|
|
|
@DuytsDoc注(locale= "en", code = "lijkenkistʸᴰ", purpose = "Sarcophagus aggregates Y-Dimensions"),
|
|
|
|
|
@DuytsDoc注(locale= "zh", purpose = "石棺聚合多個維度"),
|
|
|
|
|
@DuytsDoc注(locale= "hi", code = "पत्थरꣻकीꣻबनीꣻहुईꣻकब्रʸᴰ", purpose = "सरकोफैगस कई आयामों को एकत्रित करता है")
|
|
|
|
|
})
|
2022-10-30 08:26:14 +01:00
|
|
|
@BãßBȍőnExport注(group = "love.distributedrebirth.bassboon")
|
|
|
|
|
static enum 石棺ʸᴰ implements BãßBȍőnAbacusInstanceMBeanʸᴰ<石棺ʸᴰ> {
|
|
|
|
|
أَكْبَرײꣻײالله;
|
2022-10-30 09:20:29 +01:00
|
|
|
private final Map<Object, BȍőnGrave> יְרוּשָׁלַיִםᒾ = new WeakHashMap<>();
|
2022-10-30 08:26:14 +01:00
|
|
|
private final List<BãßBȍőnSpiderSperm> സ്പൈഡർബീജം = Bãß.характеристики.熱蘭遮城.ןװיזױזזךזדןװיױןױדודו();
|
2022-10-24 14:34:30 +02:00
|
|
|
private final 𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ 𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨 = Bãß.характеристики.熱蘭遮城.ןיװיזױױדודזיןןןזךױזזז();
|
2022-10-30 08:26:14 +01:00
|
|
|
private final ReadWriteLock 魎 = Bãß.характеристики.熱蘭遮城.ןיװיןזךױזױדזיןןזזזױדו();
|
|
|
|
|
private final Lock 魎_いい人生 = 魎.readLock(); // mononoke good life
|
|
|
|
|
private final Lock 魎_שמירה = 魎.writeLock(); // mononoke death guard
|
|
|
|
|
@BãßBȍőnSpiderWire注(name = "boonCntInit")
|
|
|
|
|
private CounterGuageᴶᴹˣ boonCntInit = new CounterGuageᴶᴹˣ("init", "only"); // TODO: fix to protected so this is not possible...
|
|
|
|
|
@BãßBȍőnSpiderWire注(name = "boonCntInit")
|
|
|
|
|
private CounterGuageᴶᴹˣ boonCntLock = new CounterGuageᴶᴹˣ("init", "only");
|
|
|
|
|
@BãßBȍőnSpiderWire注(name = "bassCntSpiderEmbryos")
|
|
|
|
|
private CounterGuageᴶᴹˣ bassCntSpiderEmbryos = new CounterGuageᴶᴹˣ("init", "only");
|
|
|
|
|
@BãßBȍőnSpiderWire注(name = "bassCntCoffinToGrave")
|
|
|
|
|
private CounterGuageᴶᴹˣ bassCntCoffinToGrave = new CounterGuageᴶᴹˣ("init", "only");
|
|
|
|
|
@BãßBȍőnSpiderWire注(name = "bassCntDigToGrave")
|
|
|
|
|
private CounterGuageᴶᴹˣ bassCntDigToGrave = new CounterGuageᴶᴹˣ("init", "only");
|
|
|
|
|
@BãßBȍőnSpiderWire注(name = "bassCntCoffinBurried")
|
|
|
|
|
private CounterGuageᴶᴹˣ bassCntCoffinBurried = new CounterGuageᴶᴹˣ("init", "only");
|
|
|
|
|
private Runnableբ.जंगम Г̄Ѫӏ = () -> {
|
|
|
|
|
// self first boot, one time only without if statements...
|
|
|
|
|
Bãß.石棺ʸᴰ.أَكْبَرײꣻײالله.挖ᵀᵒ(Bãß.石棺ʸᴰ.أَكْبَرײꣻײالله).init(Bãß.石棺ʸᴰ.أَكْبَرײꣻײالله);
|
|
|
|
|
Bãß.石棺ʸᴰ.أَكْبَرײꣻײالله.Г̄Ѫӏ = () -> boonCntInit.increment();
|
|
|
|
|
};
|
2022-10-20 03:06:56 +02:00
|
|
|
|
2022-10-31 00:32:01 +01:00
|
|
|
@DuytsDocConstructor注(babel = {
|
|
|
|
|
@DuytsDoc注(locale= "en", purpose = "Sarcophagus is closed for humans"),
|
|
|
|
|
@DuytsDoc注(locale= "zh", purpose = "石棺對人類關閉"),
|
|
|
|
|
@DuytsDoc注(locale= "hi", purpose = "सरकोफैगस इंसानों के लिए बंद है")
|
|
|
|
|
})
|
2022-10-20 03:06:56 +02:00
|
|
|
private 石棺ʸᴰ() {
|
2022-10-24 15:33:58 +02:00
|
|
|
Bãß.характеристики.熱蘭遮城.יזזןיזךױױזזױ = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.CHAR_ATARI > Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
2022-10-31 00:32:01 +01:00
|
|
|
@DuytsDocMethod注(babel = {
|
|
|
|
|
@DuytsDoc注(locale= "en", code = "boonInit", purpose = "RÅ...........Init"),
|
|
|
|
|
@DuytsDoc注(locale= "zh", code = "恩惠初始化", purpose = "拉布恩飛行"),
|
|
|
|
|
@DuytsDoc注(locale= "hi", code = "बूनꣻस्टार्ट", purpose = "रा बून फ्लाइंग")
|
|
|
|
|
})
|
2022-10-24 14:34:30 +02:00
|
|
|
public <T extends BãßBȍőnʸᴰ<T>> void 𓂀ױןייזדזיודזיןןזזזןױ𓉢(BãßBȍőnʸᴰ<T> derKnochen) {
|
2022-10-30 08:26:14 +01:00
|
|
|
//boonCntInit.increment();
|
|
|
|
|
Г̄Ѫӏ.दौड़ना();
|
2022-10-24 12:47:32 +02:00
|
|
|
挖ᵀᵒ(derKnochen).init(derKnochen);
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
2022-10-31 00:32:01 +01:00
|
|
|
@DuytsDocMethod注(babel = {
|
|
|
|
|
@DuytsDoc注(locale= "en", code = "lockGrave", purpose = "Closes the coffin so no new ghosts can enter"),
|
|
|
|
|
@DuytsDoc注(locale= "zh", code = "墳墓鎖", purpose = "關上棺材,讓新的鬼魂無法進入"),
|
|
|
|
|
@DuytsDoc注(locale= "hi", code = "कब्रꣻकाꣻताला", purpose = "ताबूत को बंद कर देता है ताकि कोई नया भूत प्रवेश न कर सके")
|
|
|
|
|
})
|
2022-10-24 14:34:30 +02:00
|
|
|
public <T extends BãßBȍőnʸᴰ<T>> void 墳ᴸᵒᶜᵏ(BãßBȍőnʸᴰ<T> derKnochen) {
|
2022-10-30 08:26:14 +01:00
|
|
|
boonCntLock.increment();
|
2022-10-24 12:47:32 +02:00
|
|
|
挖ᵀᵒ(derKnochen).lock(derKnochen);
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
2022-10-31 00:32:01 +01:00
|
|
|
@DuytsDocMethod注(babel = {
|
|
|
|
|
@DuytsDoc注(locale= "en", code = "spiderEmbryoAdd", purpose = "Injection of external spider sperm to mix the dead bones"),
|
|
|
|
|
@DuytsDoc注(locale= "zh", code = "蜘蛛胚胎添加", purpose = "注射外部蜘蛛精混合死骨"),
|
|
|
|
|
@DuytsDoc注(locale= "hi", code = "मकड़ीꣻभ्रूणꣻजोड़ें", purpose = "मृत हड्डियों को मिलाने के लिए बाहरी मकड़ी के शुक्राणु का इंजेक्शन")
|
|
|
|
|
})
|
2022-10-24 14:34:30 +02:00
|
|
|
public void 蜘蛛胚ᴬᵈᵈ(BãßBȍőnSpiderSperm spinneSperma) {
|
2022-10-30 08:26:14 +01:00
|
|
|
bassCntSpiderEmbryos.increment();
|
2022-10-24 14:34:30 +02:00
|
|
|
സ്പൈഡർബീജം.add(spinneSperma);
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-31 00:32:01 +01:00
|
|
|
@DuytsDocMethod注(babel = {
|
|
|
|
|
@DuytsDoc注(locale= "en", code = "coffinOf", purpose = "Gets the coffin from the grave"),
|
|
|
|
|
@DuytsDoc注(locale= "zh", code = "棺材", purpose = "從墳墓中取出棺材"),
|
|
|
|
|
@DuytsDoc注(locale= "hi", code = "काꣻताबूत", purpose = "कब्र से ताबूत मिलता है")
|
|
|
|
|
})
|
2022-10-24 14:34:30 +02:00
|
|
|
protected <T extends BãßBȍőnʸᴰ<T>> BãßBȍőnCoffin 棺ᴼᶠ(BãßBȍőnʸᴰ<T> derKnochen) {
|
2022-10-30 08:26:14 +01:00
|
|
|
bassCntCoffinToGrave.increment();
|
2022-10-24 12:47:32 +02:00
|
|
|
return 挖ᵀᵒ(derKnochen);
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
2022-10-24 14:34:30 +02:00
|
|
|
protected <T extends BãßBȍőnʸᴰ<T>, G extends BãßBȍőnCoffinDuytschenᵗˣᵗ> G 棺ᴼᶠ(BãßBȍőnʸᴰ<T> derKnochen, Class<G> duytschen) {
|
2022-10-30 08:26:14 +01:00
|
|
|
bassCntCoffinToGrave.increment();
|
2022-10-24 12:47:32 +02:00
|
|
|
return 挖ᵀᵒ(derKnochen).ₜₒI18Nᵗˣᵗ(duytschen);
|
2022-10-22 02:55:03 +02:00
|
|
|
}
|
2022-10-20 03:06:56 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Dig To
|
|
|
|
|
*/
|
2022-10-24 14:34:30 +02:00
|
|
|
private <T extends BãßBȍőnʸᴰ<T>> BȍőnGrave 挖ᵀᵒ(BãßBȍőnʸᴰ<T> derKnochen) {
|
2022-10-30 08:26:14 +01:00
|
|
|
bassCntDigToGrave.increment();
|
2022-10-24 12:47:32 +02:00
|
|
|
BȍőnGrave 𓁀 = null;
|
2022-10-30 08:26:14 +01:00
|
|
|
魎_いい人生.lock();
|
2022-10-20 03:06:56 +02:00
|
|
|
try {
|
2022-10-30 09:20:29 +01:00
|
|
|
𓁀 = יְרוּשָׁלַיִםᒾ.get(derKnochen);
|
2022-10-20 03:06:56 +02:00
|
|
|
} finally {
|
2022-10-30 08:26:14 +01:00
|
|
|
魎_いい人生.unlock();
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
2022-10-24 12:47:32 +02:00
|
|
|
if (𓁀 == null) {
|
2022-10-30 08:26:14 +01:00
|
|
|
魎_שמירה.lock();
|
2022-10-20 03:06:56 +02:00
|
|
|
try {
|
2022-10-24 14:34:30 +02:00
|
|
|
𓁀 = new BȍőnGrave(𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨, സ്പൈഡർബീജം);
|
2022-10-30 09:20:29 +01:00
|
|
|
יְרוּשָׁלַיִםᒾ.put(derKnochen, 𓁀);
|
2022-10-20 03:06:56 +02:00
|
|
|
} finally {
|
2022-10-30 08:26:14 +01:00
|
|
|
魎_שמירה.unlock();
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
2022-10-30 08:26:14 +01:00
|
|
|
bassCntCoffinBurried.increment();
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
2022-10-24 12:47:32 +02:00
|
|
|
return 𓁀;
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
|
|
|
|
/*
|
|
|
|
|
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);
|
|
|
|
|
}
|
2022-10-20 23:04:45 +02:00
|
|
|
return new BeanWrapper<>(bean);
|
2022-10-20 03:06:56 +02:00
|
|
|
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException
|
|
|
|
|
| InvocationTargetException | NoSuchMethodException | SecurityException e) {
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-20 23:04:45 +02:00
|
|
|
public static final class BeanWrapper<T> implements DefaultBãßBȍőnʸᴰ<T>, BãßBȍőnSpiderCloak<T> {
|
2022-10-20 03:06:56 +02:00
|
|
|
private final T bean;
|
|
|
|
|
|
|
|
|
|
private BeanWrapper(T bean) {
|
2022-10-20 23:04:45 +02:00
|
|
|
魎ᴵᴺᴵᵀ(this);
|
2022-10-20 03:06:56 +02:00
|
|
|
this.bean = bean;
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-20 23:04:45 +02:00
|
|
|
@Override
|
2022-10-20 03:06:56 +02:00
|
|
|
public T getBean() {
|
|
|
|
|
return bean;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
private static final class BȍőnGrave implements BãßBȍőnCoffin {
|
2022-10-22 02:55:03 +02:00
|
|
|
private final Map<Class<? extends BãßBȍőnCoffinDuytschenᵗˣᵗ>,BãßBȍőnCoffinDuytschenᵗˣᵗ> duytschenCoffins = new HashMap<>();
|
|
|
|
|
private final Map<Class<?>,BãßBȍőnCoffinGhost> ghosts = new HashMap<>();
|
2022-10-24 14:34:30 +02:00
|
|
|
private final 𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ 𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨;
|
|
|
|
|
private final BãßBȍőnSpider spider;
|
2022-10-20 03:06:56 +02:00
|
|
|
private boolean inited = false;
|
|
|
|
|
private boolean locked = false;
|
|
|
|
|
|
2022-10-24 14:34:30 +02:00
|
|
|
private BȍőnGrave(𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ 𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨, List<BãßBȍőnSpiderSperm> spiderSperm) {
|
|
|
|
|
this.𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨 = 𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨;
|
|
|
|
|
spider = new BãßBȍőnSpider(spiderSperm);
|
2022-10-22 02:55:03 +02:00
|
|
|
BãßBȍőnCoffinDuytschenᵗˣᵗ.ײₚᵤₜI18Nᵗˣᵗײ(duytschenCoffins, this);
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
2022-10-24 12:47:32 +02:00
|
|
|
private <T extends BãßBȍőnʸᴰ<T>> void init(BãßBȍőnʸᴰ<T> derKnochen) {
|
2022-10-20 03:06:56 +02:00
|
|
|
if (inited) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2022-10-24 14:34:30 +02:00
|
|
|
𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨.𝔦𝔫𝔦𝔱𝔅𝔬𝔫𝔢𝔐𝔞𝔤𝔦𝔠(derKnochen, spider, duytschenCoffins);
|
2022-10-20 03:06:56 +02:00
|
|
|
inited = true;
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-24 12:47:32 +02:00
|
|
|
private <T extends BãßBȍőnʸᴰ<T>> void lock(BãßBȍőnʸᴰ<T> derKnochen) {
|
2022-10-20 03:06:56 +02:00
|
|
|
if (locked) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2022-10-24 14:34:30 +02:00
|
|
|
𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨.𝔩𝔬𝔠𝔨𝔅𝔬𝔫𝔢𝔐𝔞𝔤𝔦𝔠(derKnochen, spider);
|
2022-10-20 03:06:56 +02:00
|
|
|
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
|
2022-10-24 17:46:37 +02:00
|
|
|
public BãßBȍőnCoffinGhost UNHOLY(Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ> familyName) {
|
2022-10-20 03:06:56 +02:00
|
|
|
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
|
2022-10-24 17:46:37 +02:00
|
|
|
public BãßBȍőnCoffinGhostSpell UNHOLY_SPELL(Class<? extends BãßBȍőnꝐŕḯṿª₮ḕ> familyName) {
|
2022-10-20 03:06:56 +02:00
|
|
|
return BãßBȍőnCoffinGhostSpell.castᴼᶠ(UNHOLY(familyName));
|
|
|
|
|
}
|
2022-10-20 23:04:45 +02:00
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
|
|
@Override
|
2022-10-21 01:25:17 +02:00
|
|
|
public <T extends BãßBȍőnꝐŕḯṿª₮ḕ響ᴼᶠ> T NOISE_OF(Class<T> noiseName) {
|
2022-10-20 23:04:45 +02:00
|
|
|
try {
|
|
|
|
|
return (T) spider.silkRoad(noiseName).senseWire(null, null, null); // rm args...
|
|
|
|
|
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-10-22 02:55:03 +02:00
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
|
|
private <G extends BãßBȍőnCoffinDuytschenᵗˣᵗ> G ₜₒI18Nᵗˣᵗ(Class<G> duytschen) {
|
|
|
|
|
G result = (G) duytschenCoffins.get(duytschen);
|
|
|
|
|
if (result == null) {
|
|
|
|
|
throw new IllegalArgumentException("Unknown duytschen: "+duytschen);
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-21 22:06:41 +02:00
|
|
|
//member static final class ℭỗᶇṧⱦᶏꬼȶʂ { // todo: jvm add death to "import static" name space pollution.
|
2022-10-20 03:06:56 +02:00
|
|
|
public static final class ℭỗᶇṧⱦᶏꬼȶʂ {
|
|
|
|
|
// 4 is magnetic consent and 3 is forced stable outcome
|
2022-10-20 23:04:45 +02:00
|
|
|
public static final char CHAR_ZERO = '0'; // nothing
|
2022-10-20 03:06:56 +02:00
|
|
|
public static final char CHAR_ONE = '1'; // all
|
|
|
|
|
public static final char CHAR_SPACE = ' '; // eatherspace
|
2022-10-21 22:06:41 +02:00
|
|
|
public static final char CHAR_ATARI = 'a'; // corner stone of creation 𐦠𐦴𐦫𐦢
|
2022-10-20 03:06:56 +02:00
|
|
|
// 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);
|
2022-10-20 23:04:45 +02:00
|
|
|
public static final double DOUBLE_ONE = 1f; //Double.valueOf(STR_ONE);
|
2022-10-20 03:06:56 +02:00
|
|
|
public static final double DOUBLE_TEN = 10f; //Double.valueOf(STR_ONE+STR_ZERO);
|
2022-10-20 23:04:45 +02:00
|
|
|
// and a bipolar flag pole
|
|
|
|
|
public static final Object PTR_VOID = null;
|
|
|
|
|
public static final Object PTR_OBJECT = new ℭỗᶇṧⱦᶏꬼȶʂ();
|
2022-10-21 22:06:41 +02:00
|
|
|
// private is public ^^^
|
2022-10-20 03:06:56 +02:00
|
|
|
private ℭỗᶇṧⱦᶏꬼȶʂ() {
|
|
|
|
|
}
|
2022-10-24 14:34:30 +02:00
|
|
|
// ...
|
|
|
|
|
// ...
|
|
|
|
|
// ...
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
interface 𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ {
|
|
|
|
|
|
|
|
|
|
<T extends BãßBȍőnʸᴰ<T>> void 𝔩𝔬𝔠𝔨𝔅𝔬𝔫𝔢𝔐𝔞𝔤𝔦𝔠(BãßBȍőnʸᴰ<T> boon, BãßBȍőnSpider spider);
|
|
|
|
|
|
|
|
|
|
<T extends BãßBȍőnʸᴰ<T>> void 𝔦𝔫𝔦𝔱𝔅𝔬𝔫𝔢𝔐𝔞𝔤𝔦𝔠(BãßBȍőnʸᴰ<T> boon, BãßBȍőnSpider spider, Map<Class<? extends BãßBȍőnCoffinDuytschenᵗˣᵗ>,BãßBȍőnCoffinDuytschenᵗˣᵗ> duytschenCoffins);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// characteristics
|
|
|
|
|
enum характеристики {
|
|
|
|
|
熱蘭遮城;
|
|
|
|
|
|
2022-10-24 15:33:58 +02:00
|
|
|
private boolean יזזןיזךױױזזױ = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.PTR_VOID == Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.PTR_OBJECT;
|
|
|
|
|
private boolean יזױזװיךןךױזױ = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.PTR_VOID != Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.PTR_OBJECT;
|
2022-10-24 14:34:30 +02:00
|
|
|
private Class<𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ> ןיװיךזדודיזןיןןזױיזזךױױז;
|
|
|
|
|
|
2022-10-24 15:33:58 +02:00
|
|
|
private void ױזדיןזךזןיןױז() {
|
2022-10-24 14:34:30 +02:00
|
|
|
if (יזזןיזךױױזזױ) {
|
|
|
|
|
throw new װошибкаיзапускаיракетыװ("יזזןיזךױױזזױ");
|
|
|
|
|
}
|
2022-10-24 15:33:58 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ױזךיךזװןיןיןןזױז() {
|
|
|
|
|
ױזדיןזךזןיןױז();
|
|
|
|
|
יזױזװיךןךױזױ = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.PTR_VOID == Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.PTR_OBJECT;
|
2022-10-24 14:34:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ױזךױזזװיךז(Class<𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ> ןיװיךזדודיזןיןןזױיזזךױױז) {
|
2022-10-24 15:33:58 +02:00
|
|
|
ױזדיןזךזןיןױז();
|
2022-10-24 14:34:30 +02:00
|
|
|
this.ןיװיךזדודיזןיןןזױיזזךױױז = ןיװיךזדודיזןיןןזױיזזךױױז;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected 𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ ןיװיזױױדודזיןןןזךױזזז() {
|
2022-10-24 15:33:58 +02:00
|
|
|
ױזדיןזךזןיןױז();
|
2022-10-24 14:34:30 +02:00
|
|
|
if (ןיװיךזדודיזןיןןזױיזזךױױז == Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.PTR_VOID) {
|
|
|
|
|
return new DefaultBȍőnLoader();
|
|
|
|
|
} else {
|
|
|
|
|
try {
|
|
|
|
|
return ןיװיךזדודיזןיןןזױיזזךױױז.getConstructor().newInstance();
|
|
|
|
|
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException
|
|
|
|
|
| InvocationTargetException | NoSuchMethodException | SecurityException e) {
|
|
|
|
|
throw new װошибкаיзапускаיракетыװ(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-10-24 15:33:58 +02:00
|
|
|
|
|
|
|
|
protected ReadWriteLock ןיװיןזךױזױדזיןןזזזױדו() {
|
|
|
|
|
ױזדיןזךזןיןױז();
|
|
|
|
|
if (יזױזװיךןךױזױ) {
|
|
|
|
|
return new ReentrantReadWriteLock();
|
|
|
|
|
}
|
2022-10-30 08:26:14 +01:00
|
|
|
return new DummyReadWriteLock();
|
2022-10-24 15:33:58 +02:00
|
|
|
}
|
|
|
|
|
|
2022-10-30 08:26:14 +01:00
|
|
|
protected <K,V> Map<K,V> ןיזזױזזךױװיןװיןױדזיװיךזדודו() {
|
|
|
|
|
ױזדיןזךזןיןױז();
|
|
|
|
|
if (יזױזװיךןךױזױ) {
|
|
|
|
|
return Collections.synchronizedMap(new HashMap<>());
|
|
|
|
|
}
|
|
|
|
|
return new HashMap<>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected <T> List<T> ןװיזױזזךזדןװיױןױדודו() {
|
|
|
|
|
ױזדיןזךזןיןױז();
|
|
|
|
|
if (יזױזװיךןךױזױ) {
|
|
|
|
|
return Collections.synchronizedList(new ArrayList<>());
|
|
|
|
|
}
|
|
|
|
|
return new ArrayList<>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected static class װошибкаיзапускаיракетыװ extends RuntimeException {
|
2022-10-24 14:34:30 +02:00
|
|
|
private static final long serialVersionUID = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.LONG_ONE;
|
|
|
|
|
protected װошибкаיзапускаיракетыװ(Exception err) {
|
|
|
|
|
super(err);
|
|
|
|
|
}
|
|
|
|
|
protected װошибкаיзапускаיракетыװ(String msg) {
|
|
|
|
|
super(msg);
|
|
|
|
|
}
|
2022-10-30 08:26:14 +01:00
|
|
|
enum 邪ᙾ {
|
|
|
|
|
;
|
|
|
|
|
public static void agentmain(String agentArgs, Instrumentation inst) {// test
|
|
|
|
|
inst.addTransformer(new BabelLocalizer邪ᙾ(), true);
|
|
|
|
|
inst.addTransformer(new ObjectScopeLimitΔ邪ᙾ(), true);
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-10-24 14:34:30 +02:00
|
|
|
}
|
2022-10-20 03:06:56 +02:00
|
|
|
}
|
|
|
|
|
}
|