mirror of
https://github.com/FalsePattern/FalsePatternLib.git
synced 2026-11-15 23:04:45 +00:00
some more utilities
This commit is contained in:
7 files changed
+74
-22
No files matched your search
@@ -2,10 +2,8 @@ package com.falsepattern.lib.internal.proxy;
|
||||
|
||||
import com.falsepattern.lib.internal.FalsePatternLib;
|
||||
import com.falsepattern.lib.internal.Tags;
|
||||
import com.falsepattern.lib.text.FormattedText;
|
||||
import com.falsepattern.lib.updates.UpdateChecker;
|
||||
import com.falsepattern.lib.util.Async;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import com.falsepattern.lib.util.AsyncUtil;
|
||||
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
@@ -13,13 +11,10 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import lombok.val;
|
||||
import net.minecraft.client.entity.EntityPlayerSP;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.event.ClickEvent;
|
||||
import net.minecraft.util.IChatComponent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.Future;
|
||||
@@ -38,7 +33,7 @@ public class ClientProxy extends CommonProxy {
|
||||
@Override
|
||||
public void postInit(FMLPostInitializationEvent e) {
|
||||
super.postInit(e);
|
||||
chatFuture = Async.asyncWorker.submit(new Callable<List<IChatComponent>>() {
|
||||
chatFuture = AsyncUtil.asyncWorker.submit(new Callable<List<IChatComponent>>() {
|
||||
@Override
|
||||
public List<IChatComponent> call() throws Exception {
|
||||
//Deadlock avoidance
|
||||
@@ -47,7 +42,7 @@ public class ClientProxy extends CommonProxy {
|
||||
return null;
|
||||
}
|
||||
if (!updatesFuture.isDone()) {
|
||||
chatFuture = Async.asyncWorker.submit(this);
|
||||
chatFuture = AsyncUtil.asyncWorker.submit(this);
|
||||
return null;
|
||||
}
|
||||
val updates = updatesFuture.get();
|
||||
|
||||
@@ -4,16 +4,14 @@ import com.falsepattern.lib.config.ConfigException;
|
||||
import com.falsepattern.lib.config.ConfigurationManager;
|
||||
import com.falsepattern.lib.internal.FalsePatternLib;
|
||||
import com.falsepattern.lib.internal.LibraryConfig;
|
||||
import com.falsepattern.lib.internal.Tags;
|
||||
import com.falsepattern.lib.updates.ModUpdateInfo;
|
||||
import com.falsepattern.lib.updates.UpdateChecker;
|
||||
import com.falsepattern.lib.util.Async;
|
||||
import com.falsepattern.lib.util.AsyncUtil;
|
||||
import cpw.mods.fml.common.event.FMLConstructionEvent;
|
||||
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import lombok.val;
|
||||
import lombok.var;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
@@ -37,7 +35,7 @@ public class CommonProxy {
|
||||
if (LibraryConfig.ENABLE_UPDATE_CHECKER) {
|
||||
FalsePatternLib.getLog().info("Launching asynchronous update check.");
|
||||
val updateCheckFuture = UpdateChecker.fetchUpdatesAsync(FalsePatternLib.UPDATE_URL);
|
||||
updatesFuture = Async.asyncWorker.submit(new Callable<List<ModUpdateInfo>>() {
|
||||
updatesFuture = AsyncUtil.asyncWorker.submit(new Callable<List<ModUpdateInfo>>() {
|
||||
@Override
|
||||
public List<ModUpdateInfo> call() {
|
||||
//Deadlock avoidance
|
||||
@@ -46,7 +44,7 @@ public class CommonProxy {
|
||||
return null;
|
||||
}
|
||||
if (!updateCheckFuture.isDone()) {
|
||||
updatesFuture = Async.asyncWorker.submit(this);
|
||||
updatesFuture = AsyncUtil.asyncWorker.submit(this);
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.falsepattern.lib.internal.Internet;
|
||||
import com.falsepattern.lib.internal.LibraryConfig;
|
||||
import com.falsepattern.lib.internal.Tags;
|
||||
import com.falsepattern.lib.text.FormattedText;
|
||||
import com.falsepattern.lib.util.Async;
|
||||
import com.falsepattern.lib.util.AsyncUtil;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import lombok.val;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
@@ -37,7 +37,7 @@ public class UpdateChecker {
|
||||
* @return A future that will contain the update info about mods that were both available on the URL and installed
|
||||
*/
|
||||
public static Future<List<ModUpdateInfo>> fetchUpdatesAsync(String url) {
|
||||
return Async.asyncWorker.submit(() -> fetchUpdates(url));
|
||||
return AsyncUtil.asyncWorker.submit(() -> fetchUpdates(url));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-2
@@ -2,7 +2,6 @@ package com.falsepattern.lib.util;
|
||||
|
||||
import com.falsepattern.lib.StableAPI;
|
||||
import com.falsepattern.lib.internal.Tags;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
@@ -13,7 +12,7 @@ import java.util.concurrent.Executors;
|
||||
* You must make sure to solve any potential deadlocks yourself!
|
||||
*/
|
||||
@StableAPI(since = "0.8.0")
|
||||
public class Async {
|
||||
public class AsyncUtil {
|
||||
public static final ExecutorService asyncWorker = Executors.newSingleThreadExecutor((runnable) -> {
|
||||
Thread thread = new Thread(runnable);
|
||||
thread.setDaemon(true);
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.falsepattern.lib.util;
|
||||
|
||||
import com.falsepattern.lib.StableAPI;
|
||||
import cpw.mods.fml.common.registry.LanguageRegistry;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static lombok.AccessLevel.PRIVATE;
|
||||
|
||||
@NoArgsConstructor(access = PRIVATE)
|
||||
@StableAPI(since = "0.8.0")
|
||||
public final class LangUtil {
|
||||
public static final String DEFAULT_LOCALE = "en_US";
|
||||
private static final ThreadLocal<HashMap<String, String>> tempMap = ThreadLocal.withInitial(HashMap::new);
|
||||
|
||||
public static void defaultLocalization(@NonNull Map<String, String> localeMap) {
|
||||
localeMap.forEach(LangUtil::defaultLocalization);
|
||||
}
|
||||
|
||||
public static void defaultLocalization(@NonNull String key, @NonNull String value) {
|
||||
if (!LanguageRegistry.instance().getStringLocalization(key, DEFAULT_LOCALE).isEmpty())
|
||||
return;
|
||||
val map = tempMap.get();
|
||||
map.put(key, value);
|
||||
LanguageRegistry.instance().injectLanguage(DEFAULT_LOCALE, map);
|
||||
map.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.falsepattern.lib.util;
|
||||
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import lombok.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.util.Timer;
|
||||
|
||||
import static cpw.mods.fml.relauncher.Side.CLIENT;
|
||||
import static lombok.AccessLevel.PRIVATE;
|
||||
import static net.minecraft.client.Minecraft.getMinecraft;
|
||||
|
||||
@SideOnly(CLIENT)
|
||||
@NoArgsConstructor(access = PRIVATE)
|
||||
public final class RenderUtil {
|
||||
private final static Timer MINECRAFT_TIMER = getMinecraftTimer();
|
||||
|
||||
@SneakyThrows
|
||||
private static Timer getMinecraftTimer() {
|
||||
val timerField = ReflectionHelper.findField(Minecraft.class, "timer", "field_71428_T");
|
||||
timerField.setAccessible(true);
|
||||
return (Timer) timerField.get(getMinecraft());
|
||||
}
|
||||
|
||||
public static float partialTick() {
|
||||
return MINECRAFT_TIMER.renderPartialTicks;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user