From da4e59ef3a596783b42369e3423b785cf3ccc1b8 Mon Sep 17 00:00:00 2001 From: Motschen Date: Wed, 18 May 2022 20:21:31 +0200 Subject: [PATCH] MidnightLib 0.4.1 - Update to 1.19 --- build.gradle | 11 ++---- gradle.properties | 10 ++--- .../core/mixin/MixinOptionsScreen.java | 5 +-- .../screen/MidnightConfigOverviewScreen.java | 4 +- .../midnightdust/lib/config/AutoCommand.java | 8 ++-- .../lib/config/MidnightConfig.java | 38 +++++++++---------- 6 files changed, 35 insertions(+), 41 deletions(-) diff --git a/build.gradle b/build.gradle index bdf9c72..6746173 100755 --- a/build.gradle +++ b/build.gradle @@ -1,18 +1,15 @@ plugins { - id 'fabric-loom' version '0.8-SNAPSHOT' + id 'fabric-loom' version '0.11-SNAPSHOT' id 'maven-publish' } -sourceCompatibility = JavaVersion.VERSION_16 -targetCompatibility = JavaVersion.VERSION_16 +sourceCompatibility = JavaVersion.VERSION_17 +targetCompatibility = JavaVersion.VERSION_17 archivesBaseName = project.archives_base_name version = project.mod_version group = project.maven_group -minecraft { -} - repositories { maven { url "https://maven.terraformersmc.com/releases" } maven { url "https://jitpack.io" } @@ -45,7 +42,7 @@ tasks.withType(JavaCompile).configureEach { it.options.encoding = "UTF-8" // Minecraft 1.17 (21w19a) upwards uses Java 16. - it.options.release = 16 + it.options.release = 17 } java { diff --git a/gradle.properties b/gradle.properties index 707136b..0dab8ed 100755 --- a/gradle.properties +++ b/gradle.properties @@ -3,16 +3,16 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/use - minecraft_version=1.17.1 - yarn_mappings=1.17.1+build.63 - loader_version=0.11.7 + minecraft_version=22w19a + yarn_mappings=22w19a+build.1 + loader_version=0.14.5 # Mod Properties - mod_version = 0.4.0 + mod_version = 0.4.1 maven_group = eu.midnightdust archives_base_name = midnightlib # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_version=0.41.0+1.17 + fabric_version=0.52.3+1.19 mod_menu_version = 2.0.2 diff --git a/src/main/java/eu/midnightdust/core/mixin/MixinOptionsScreen.java b/src/main/java/eu/midnightdust/core/mixin/MixinOptionsScreen.java index 687a2e6..c6b0fc3 100755 --- a/src/main/java/eu/midnightdust/core/mixin/MixinOptionsScreen.java +++ b/src/main/java/eu/midnightdust/core/mixin/MixinOptionsScreen.java @@ -7,7 +7,6 @@ import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.option.OptionsScreen; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -25,7 +24,7 @@ public class MixinOptionsScreen extends Screen { @Inject(at = @At("HEAD"),method = "init") private void midnightlib$init(CallbackInfo ci) { - if (MidnightLibConfig.config_screen_list.equals(MidnightLibConfig.ConfigButton.TRUE) || MidnightLibConfig.config_screen_list.equals(MidnightLibConfig.ConfigButton.MODMENU) && FabricLoader.getInstance().isModLoaded("modmenu")) - this.addDrawableChild(new TexturedOverlayButtonWidget(this.width / 2 + 158, this.height / 6 - 12, 20, 20, 0, 0, 20, MIDNIGHTLIB_ICON_TEXTURE, 32, 64, (buttonWidget) -> Objects.requireNonNull(client).setScreen(new MidnightConfigOverviewScreen(this)), new TranslatableText("midnightlib.overview.title"))); + if (MidnightLibConfig.config_screen_list.equals(MidnightLibConfig.ConfigButton.TRUE) || (MidnightLibConfig.config_screen_list.equals(MidnightLibConfig.ConfigButton.MODMENU) && !FabricLoader.getInstance().isModLoaded("modmenu"))) + this.addDrawableChild(new TexturedOverlayButtonWidget(this.width / 2 + 158, this.height / 6 - 12, 20, 20, 0, 0, 20, MIDNIGHTLIB_ICON_TEXTURE, 32, 64, (buttonWidget) -> Objects.requireNonNull(client).setScreen(new MidnightConfigOverviewScreen(this)), Text.translatable("midnightlib.overview.title"))); } } diff --git a/src/main/java/eu/midnightdust/core/screen/MidnightConfigOverviewScreen.java b/src/main/java/eu/midnightdust/core/screen/MidnightConfigOverviewScreen.java index df70d19..3c15144 100755 --- a/src/main/java/eu/midnightdust/core/screen/MidnightConfigOverviewScreen.java +++ b/src/main/java/eu/midnightdust/core/screen/MidnightConfigOverviewScreen.java @@ -18,7 +18,7 @@ import java.util.*; public class MidnightConfigOverviewScreen extends Screen { public MidnightConfigOverviewScreen(Screen parent) { - super(new TranslatableText( "midnightlib.overview.title")); + super(Text.translatable( "midnightlib.overview.title")); this.parent = parent; } private final Screen parent; @@ -32,7 +32,7 @@ public class MidnightConfigOverviewScreen extends Screen { if (this.client != null && this.client.world != null) this.list.setRenderBackground(false); this.addSelectableChild(this.list); MidnightConfig.configClass.forEach((modid, configClass) -> - list.addButton(new ButtonWidget(this.width / 2 - 100, this.height - 28, 200, 20, new TranslatableText(modid +".midnightconfig.title"), (button) -> + list.addButton(new ButtonWidget(this.width / 2 - 100, this.height - 28, 200, 20, Text.translatable(modid +".midnightconfig.title"), (button) -> Objects.requireNonNull(client).setScreen(MidnightConfig.getScreen(this,modid))))); super.init(); } diff --git a/src/main/java/eu/midnightdust/lib/config/AutoCommand.java b/src/main/java/eu/midnightdust/lib/config/AutoCommand.java index 917552b..5bf2654 100644 --- a/src/main/java/eu/midnightdust/lib/config/AutoCommand.java +++ b/src/main/java/eu/midnightdust/lib/config/AutoCommand.java @@ -7,7 +7,7 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback; import net.minecraft.server.command.CommandManager; import net.minecraft.server.command.ServerCommandSource; -import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import java.lang.reflect.Field; import java.util.Arrays; @@ -73,16 +73,16 @@ public class AutoCommand { MidnightConfig.write(modid); } catch (Exception e) { - source.sendError(new LiteralText("Could not set "+entry.getName()+" to value "+value+": " + e)); + source.sendError(Text.literal("Could not set "+entry.getName()+" to value "+value+": " + e)); return 0; } - source.sendFeedback(new LiteralText("Successfully set " + entry.getName()+" to "+value), true); + source.sendFeedback(Text.literal("Successfully set " + entry.getName()+" to "+value), true); return 1; } private int getValue(ServerCommandSource source) { try { - source.sendFeedback(new LiteralText("The value of "+entry.getName()+" is "+entry.get(null)), false); + source.sendFeedback(Text.literal("The value of "+entry.getName()+" is "+entry.get(null)), false); return 1; } catch (IllegalAccessException ignored) {} diff --git a/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java b/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java index 1faab89..9d88b9f 100755 --- a/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java +++ b/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java @@ -20,10 +20,8 @@ import net.minecraft.client.gui.widget.ElementListWidget; import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.resource.language.I18n; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.text.LiteralText; import net.minecraft.text.Style; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import java.awt.Color; @@ -67,7 +65,7 @@ public abstract class MidnightConfig { String tempValue; boolean inLimits = true; String id; - TranslatableText name; + Text name; int index; ClickableWidget colorButton; } @@ -111,7 +109,7 @@ public abstract class MidnightConfig { info.id = modid; if (e != null) { - if (!e.name().equals("")) info.name = new TranslatableText(e.name()); + if (!e.name().equals("")) info.name = Text.translatable(e.name()); if (type == int.class) textField(info, Integer::parseInt, INTEGER_ONLY, (int) e.min(), (int) e.max(), true); else if (type == float.class) textField(info, Float::parseFloat, DECIMAL_ONLY, (float) e.min(), (float) e.max(), false); else if (type == double.class) textField(info, Double::parseDouble, DECIMAL_ONLY, e.min(), e.max(), false); @@ -119,14 +117,14 @@ public abstract class MidnightConfig { info.max = e.max() == Double.MAX_VALUE ? Integer.MAX_VALUE : (int) e.max(); textField(info, String::length, null, Math.min(e.min(), 0), Math.max(e.max(), 1), true); } else if (type == boolean.class) { - Function func = value -> new LiteralText((Boolean) value ? "True" : "False").formatted((Boolean) value ? Formatting.GREEN : Formatting.RED); + Function func = value -> Text.literal((Boolean) value ? "True" : "False").formatted((Boolean) value ? Formatting.GREEN : Formatting.RED); info.widget = new AbstractMap.SimpleEntry>(button -> { info.value = !(Boolean) info.value; button.setMessage(func.apply(info.value)); }, func); } else if (type.isEnum()) { List values = Arrays.asList(field.getType().getEnumConstants()); - Function func = value -> new TranslatableText(modid + ".midnightconfig." + "enum." + type.getSimpleName() + "." + info.value.toString()); + Function func = value -> Text.translatable(modid + ".midnightconfig." + "enum." + type.getSimpleName() + "." + info.value.toString()); info.widget = new AbstractMap.SimpleEntry>(button -> { int index = values.indexOf(info.value) + 1; info.value = values.get(index >= values.size() ? 0 : index); @@ -149,7 +147,7 @@ public abstract class MidnightConfig { if (!(isNumber && s.isEmpty()) && !s.equals("-") && !s.equals(".")) { value = f.apply(s); inLimits = value.doubleValue() >= min && value.doubleValue() <= max; - info.error = inLimits? null : new AbstractMap.SimpleEntry<>(t, new LiteralText(value.doubleValue() < min ? + info.error = inLimits? null : new AbstractMap.SimpleEntry<>(t, Text.literal(value.doubleValue() < min ? "§cMinimum " + (isNumber? "value" : "length") + (cast? " is " + (int)min : " is " + min) : "§cMaximum " + (isNumber? "value" : "length") + (cast? " is " + (int)max : " is " + max))); } @@ -170,7 +168,7 @@ public abstract class MidnightConfig { if (!s.contains("#")) s = '#' + s; if (!HEXADECIMAL_ONLY.matcher(s).matches()) return false; try { - info.colorButton.setMessage(new LiteralText("⬛").setStyle(Style.EMPTY.withColor(Color.decode(info.tempValue).getRGB()))); + info.colorButton.setMessage(Text.literal("⬛").setStyle(Style.EMPTY.withColor(Color.decode(info.tempValue).getRGB()))); } catch (Exception ignored) {} } return true; @@ -193,7 +191,7 @@ public abstract class MidnightConfig { @Environment(EnvType.CLIENT) private static class MidnightConfigScreen extends Screen { protected MidnightConfigScreen(Screen parent, String modid) { - super(new TranslatableText(modid + ".midnightconfig." + "title")); + super(Text.translatable(modid + ".midnightconfig." + "title")); this.parent = parent; this.modid = modid; this.translationPrefix = modid + ".midnightconfig."; @@ -250,8 +248,8 @@ public abstract class MidnightConfig { this.addSelectableChild(this.list); for (EntryInfo info : entries) { if (info.id.equals(modid)) { - TranslatableText name = Objects.requireNonNullElseGet(info.name, () -> new TranslatableText(translationPrefix + info.field.getName())); - ButtonWidget resetButton = new ButtonWidget(width - 205, 0, 40, 20, new LiteralText("Reset").formatted(Formatting.RED), (button -> { + Text name = Objects.requireNonNullElseGet(info.name, () -> Text.translatable(translationPrefix + info.field.getName())); + ButtonWidget resetButton = new ButtonWidget(width - 205, 0, 40, 20, Text.translatable("Reset").formatted(Formatting.RED), (button -> { info.value = info.defaultValue; info.tempValue = info.defaultValue.toString(); info.index = 0; @@ -263,7 +261,7 @@ public abstract class MidnightConfig { if (info.widget instanceof Map.Entry) { Map.Entry> widget = (Map.Entry>) info.widget; - if (info.field.getType().isEnum()) widget.setValue(value -> new TranslatableText(translationPrefix + "enum." + info.field.getType().getSimpleName() + "." + info.value.toString())); + if (info.field.getType().isEnum()) widget.setValue(value -> Text.translatable(translationPrefix + "enum." + info.field.getType().getSimpleName() + "." + info.value.toString())); this.list.addButton(List.of(new ButtonWidget(width - 160, 0,150, 20, widget.getValue().apply(info.value), widget.getKey()),resetButton), name); } else if (info.field.getType() == List.class) { if (!reload) info.index = 0; @@ -274,8 +272,8 @@ public abstract class MidnightConfig { Predicate processor = ((BiFunction>) info.widget).apply(widget, done); widget.setTextPredicate(processor); resetButton.setWidth(20); - resetButton.setMessage(new LiteralText("R").formatted(Formatting.RED)); - ButtonWidget cycleButton = new ButtonWidget(width - 185, 0, 20, 20, new LiteralText(String.valueOf(info.index)).formatted(Formatting.GOLD), (button -> { + resetButton.setMessage(Text.literal("R").formatted(Formatting.RED)); + ButtonWidget cycleButton = new ButtonWidget(width - 185, 0, 20, 20, Text.literal(String.valueOf(info.index)).formatted(Formatting.GOLD), (button -> { ((List)info.value).remove(""); double scrollAmount = list.getScrollAmount(); this.reload = true; @@ -293,9 +291,9 @@ public abstract class MidnightConfig { widget.setTextPredicate(processor); if (info.field.getAnnotation(Entry.class).isColor()) { resetButton.setWidth(20); - resetButton.setMessage(new LiteralText("R").formatted(Formatting.RED)); - ButtonWidget colorButton = new ButtonWidget(width - 185, 0, 20, 20, new LiteralText("⬛"), (button -> {})); - try {colorButton.setMessage(new LiteralText("⬛").setStyle(Style.EMPTY.withColor(Color.decode(info.tempValue).getRGB())));} catch (Exception ignored) {} + resetButton.setMessage(Text.literal("R").formatted(Formatting.RED)); + ButtonWidget colorButton = new ButtonWidget(width - 185, 0, 20, 20, Text.literal("⬛"), (button -> {})); + try {colorButton.setMessage(Text.literal("⬛").setStyle(Style.EMPTY.withColor(Color.decode(info.tempValue).getRGB())));} catch (Exception ignored) {} info.colorButton = colorButton; this.list.addButton(List.of(widget, colorButton, resetButton), name); } @@ -318,14 +316,14 @@ public abstract class MidnightConfig { if (list.getHoveredButton(mouseX,mouseY).isPresent()) { ClickableWidget buttonWidget = list.getHoveredButton(mouseX,mouseY).get(); Text text = ButtonEntry.buttonsWithText.get(buttonWidget); - TranslatableText name = new TranslatableText(this.translationPrefix + info.field.getName()); + Text name = Text.translatable(this.translationPrefix + info.field.getName()); String key = translationPrefix + info.field.getName() + ".tooltip"; if (info.error != null && text.equals(name)) renderTooltip(matrices, info.error.getValue(), mouseX, mouseY); else if (I18n.hasTranslation(key) && text.equals(name)) { List list = new ArrayList<>(); for (String str : I18n.translate(key).split("\n")) - list.add(new LiteralText(str)); + list.add(Text.literal(str)); renderTooltip(matrices, list, mouseX, mouseY); } } @@ -379,7 +377,7 @@ public abstract class MidnightConfig { public void render(MatrixStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) { buttons.forEach(b -> { b.y = y; b.render(matrices, mouseX, mouseY, tickDelta); }); if (text != null && (!text.getString().contains("spacer") || !buttons.isEmpty())) - DrawableHelper.drawTextWithShadow(matrices,textRenderer, text,12,y+5,0xFFFFFF); + DrawableHelper.drawTextWithShadow(matrices,textRenderer, text,12,y+5,0xFFFFFF); } public List children() {return children;} public List selectableChildren() {return children;}