diff --git a/libraries/text-components/gradle.properties b/libraries/text-components/gradle.properties index 9f5e1f27a..f22b43330 100644 --- a/libraries/text-components/gradle.properties +++ b/libraries/text-components/gradle.properties @@ -3,5 +3,5 @@ library_name = Text Components library_description = Versatile text components. library_version = 0.1.0-alpha.6 -entrypoint_init = net.ornithemc.osl.text.impl.TextResolversInit +entrypoint_init = net.ornithemc.osl.text.impl.TextInit osl_dependencies = core:0.7.0,entrypoints:0.5.0 diff --git a/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/MessageConsumer.java b/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/MessageConsumer.java new file mode 100644 index 000000000..cd2080fe5 --- /dev/null +++ b/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/MessageConsumer.java @@ -0,0 +1,16 @@ +package net.ornithemc.osl.text.api; + +/** + * Common interface for objects accepting {@linkplain TextComponent} messages. + * + * @see TextComponent + * @see TextComponents + */ +public interface MessageConsumer { + + /** + * Send a {@linkplain TextComponent} message. + */ + void sendMessage(TextComponent message); + +} diff --git a/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/TextComponent.java b/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/TextComponent.java index 790b247ad..38e2818a8 100644 --- a/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/TextComponent.java +++ b/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/TextComponent.java @@ -29,6 +29,9 @@ import net.ornithemc.osl.text.impl.LiteralTextComponent; import net.ornithemc.osl.text.impl.TranslatableTextComponent; +/** + * @see TextComponents + */ public interface TextComponent { Style getStyle(); diff --git a/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/TextComponents.java b/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/TextComponents.java index 6c08208b7..8ad2e4043 100644 --- a/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/TextComponents.java +++ b/libraries/text-components/src/main/java/net/ornithemc/osl/text/api/TextComponents.java @@ -8,6 +8,7 @@ import net.ornithemc.osl.text.api.TextComponent.Serializer.LowercaseEnumTypeAdapterFactory; import net.ornithemc.osl.text.impl.LiteralTextComponent; import net.ornithemc.osl.text.impl.TextComponentBuilder; +import net.ornithemc.osl.text.impl.TextConverters; import net.ornithemc.osl.text.impl.TextResolvers; import net.ornithemc.osl.text.impl.TranslatableTextComponent; @@ -69,4 +70,8 @@ public static String toJson(TextComponent t) { public static JsonElement toJsonTree(TextComponent t) { return GSON.toJsonTree(t); } + + public static T convert(TextComponent t, Class type) { + return TextConverters.convert(t, type); + } } diff --git a/libraries/text-components/src/main/java/net/ornithemc/osl/text/impl/MessageConsumerImpl.java b/libraries/text-components/src/main/java/net/ornithemc/osl/text/impl/MessageConsumerImpl.java new file mode 100644 index 000000000..010958e13 --- /dev/null +++ b/libraries/text-components/src/main/java/net/ornithemc/osl/text/impl/MessageConsumerImpl.java @@ -0,0 +1,12 @@ +package net.ornithemc.osl.text.impl; + +import net.ornithemc.osl.text.api.MessageConsumer; +import net.ornithemc.osl.text.api.TextComponent; + +public interface MessageConsumerImpl extends MessageConsumer { + + @Override + default void sendMessage(TextComponent message) { + throw new AbstractMethodError(); + } +} diff --git a/libraries/text-components/src/main/java/net/ornithemc/osl/text/impl/TextConverter.java b/libraries/text-components/src/main/java/net/ornithemc/osl/text/impl/TextConverter.java new file mode 100644 index 000000000..0f7b4eaaf --- /dev/null +++ b/libraries/text-components/src/main/java/net/ornithemc/osl/text/impl/TextConverter.java @@ -0,0 +1,9 @@ +package net.ornithemc.osl.text.impl; + +import net.ornithemc.osl.text.api.TextComponent; + +public interface TextConverter { + + T convert(TextComponent text); + +} diff --git a/libraries/text-components/src/main/java/net/ornithemc/osl/text/impl/TextConverters.java b/libraries/text-components/src/main/java/net/ornithemc/osl/text/impl/TextConverters.java new file mode 100644 index 000000000..c78ea68f9 --- /dev/null +++ b/libraries/text-components/src/main/java/net/ornithemc/osl/text/impl/TextConverters.java @@ -0,0 +1,38 @@ +package net.ornithemc.osl.text.impl; + +import java.util.HashMap; +import java.util.Map; + +import net.ornithemc.osl.text.api.TextComponent; + +public class TextConverters { + + private static Map, TextConverter> converters = new HashMap<>(); + + static { + register(String.class, TextComponent::buildFormattedString); + } + + public static void register(Class type, TextConverter resolver) { + if (converters.containsKey(type)) { + throw new IllegalStateException("cannot register multiple text component converters for type " + type.getName()); + } else { + converters.put(type, resolver); + } + } + + public static T convert(TextComponent text, Class type) { + TextConverter converter = converters.get(type); + + if (converter == null) { + return null; + } + + return convert(converter, text); + } + + @SuppressWarnings("unchecked") + private static T convert(TextConverter converter, TextComponent text) { + return (T) converter.convert(text); + } +} diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/build.gradle b/libraries/text-components/text-components-mc13w21a-mc1.6.4/build.gradle similarity index 100% rename from libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/build.gradle rename to libraries/text-components/text-components-mc13w21a-mc1.6.4/build.gradle diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/gradle.properties b/libraries/text-components/text-components-mc13w21a-mc1.6.4/gradle.properties similarity index 78% rename from libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/gradle.properties rename to libraries/text-components/text-components-mc13w21a-mc1.6.4/gradle.properties index 110174fd8..0e555d29f 100644 --- a/libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/gradle.properties +++ b/libraries/text-components/text-components-mc13w21a-mc1.6.4/gradle.properties @@ -1,4 +1,4 @@ -min_mc_version = a1.0.1_01 +min_mc_version = 13w21a max_mc_version = 1.6.4 minecraft_version = 1.6.4 diff --git a/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/BaseTextConverter.java b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/BaseTextConverter.java new file mode 100644 index 000000000..1458213c6 --- /dev/null +++ b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/BaseTextConverter.java @@ -0,0 +1,40 @@ +package net.ornithemc.osl.text.impl; + +import net.ornithemc.osl.text.api.Style; +import net.ornithemc.osl.text.api.TextComponent; +import net.minecraft.text.Text; + +public class BaseTextConverter implements TextConverter { + + @Override + public Text convert(TextComponent component) { + Text text; + + if (component instanceof LiteralTextComponent) { + text = Text.literal(((LiteralTextComponent) component).getValue()); + } else if (component instanceof TranslatableTextComponent) { + text = Text.translatable(((TranslatableTextComponent) component).getKey(), ((TranslatableTextComponent) component).getArgs()); + } else { + text = Text.literal(""); + } + + Style style = component.getStyle(); + + if (style.getColor() != null && style.getColor().isFormatting()) + text.setColor(net.minecraft.text.Formatting.byName(style.getColor().serialize())); + if (style.withBold(style.isBold()) != style) + text.setBold(style.isBold()); + if (style.withItalic(style.isItalic()) != style) + text.setItalic(style.isItalic()); + if (style.withUnderlined(style.isUnderlined()) != style) + text.setUnderlined(style.isUnderlined()); + if (style.withObfuscated(style.isObfuscated()) != style) + text.setObfuscated(style.isObfuscated()); + + for (TextComponent sibling : component.getSiblings()) { + text.append(this.convert(sibling)); + } + + return text; + } +} diff --git a/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/BaseTextResolver.java b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/BaseTextResolver.java new file mode 100644 index 000000000..7fc2f77e4 --- /dev/null +++ b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/BaseTextResolver.java @@ -0,0 +1,42 @@ +package net.ornithemc.osl.text.impl; + +import net.ornithemc.osl.text.api.Formatting; +import net.ornithemc.osl.text.api.Style; +import net.ornithemc.osl.text.api.TextComponent; +import net.minecraft.text.Text; + +import net.ornithemc.osl.text.api.TextComponents; + +import java.util.List; +import java.util.stream.Collectors; + +public class BaseTextResolver implements TextResolver { + + @Override + public TextComponent resolve(Text o) { + List siblings = o.getSiblings(); + + TextComponent component; + if (o.getTranslated() != null) { + if (siblings == null) { + component = TextComponents.translatable(o.getTranslated()); + } else { + List args = siblings.stream().map(this::resolve).collect(Collectors.toList()); + component = TextComponents.translatable(o.getTranslated(), args.toArray()); + } + } else if (o.getText() != null) { + component = TextComponents.literal(o.getText()); + } else if (siblings != null) { + component = TextComponents.composite(siblings.toArray()); + } else { + component = TextComponents.literal(""); + } + + return component.format(Style.EMPTY + .withColor(o.getColor() != null ? Formatting.byCode(o.getColor().getCode()) : null) + .withBold(o.isBold()) + .withItalic(o.isItalic()) + .withUnderlined(o.isUnderlined()) + .withObfuscated(o.isObfuscated())); + } +} diff --git a/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/TextInit.java b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/TextInit.java new file mode 100644 index 000000000..e0cb0a872 --- /dev/null +++ b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/TextInit.java @@ -0,0 +1,14 @@ +package net.ornithemc.osl.text.impl; + +import net.minecraft.text.Text; + +import net.ornithemc.osl.entrypoints.api.ModInitializer; + +public class TextInit implements ModInitializer { + + @Override + public void init() { + TextResolvers.register(Text.class, new BaseTextResolver()); + TextConverters.register(Text.class, new BaseTextConverter()); + } +} diff --git a/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/CommandSourceMixin.java b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/CommandSourceMixin.java new file mode 100644 index 000000000..c3c35c78c --- /dev/null +++ b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/CommandSourceMixin.java @@ -0,0 +1,23 @@ +package net.ornithemc.osl.text.impl.mixin.common; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +import net.minecraft.server.command.source.CommandSource; +import net.minecraft.text.Text; + +import net.ornithemc.osl.text.api.MessageConsumer; +import net.ornithemc.osl.text.api.TextComponent; +import net.ornithemc.osl.text.api.TextComponents; + +@Mixin(CommandSource.class) +public interface CommandSourceMixin extends MessageConsumer { + + @Shadow + void sendMessage(Text messae); + + @Override + default void sendMessage(TextComponent message) { + this.sendMessage(TextComponents.convert(message, Text.class)); + } +} diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/resources/fabric.mod.json similarity index 76% rename from libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json rename to libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/resources/fabric.mod.json index e562a3b17..a627b890f 100644 --- a/libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json +++ b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/resources/fabric.mod.json @@ -1,19 +1,20 @@ { "schemaVersion": 1, "id": "osl-text-components", - "version": "0.1.0-alpha.6+mca1.0.1_01-mc1.6.4", + "version": "0.1.0-alpha.6+mc13w21a-mc1.6.4", "environment": "*", "entrypoints": { "init": [ - "net.ornithemc.osl.text.impl.TextResolversInit" + "net.ornithemc.osl.text.impl.TextInit" ] }, "mixins": [ "osl.text-components.mixins.json" ], + "accessWidener": "osl.text-components.classtweaker", "depends": { "fabricloader": "\u003e\u003d0.18.0", - "minecraft": "\u003e\u003d1.0.0-alpha.0.1.1 \u003c\u003d1.6.4", + "minecraft": "\u003e\u003d1.6-alpha.13.21.a \u003c\u003d1.6.4", "osl-core": "\u003e\u003d0.7.0", "osl-entrypoints": "\u003e\u003d0.5.0" }, diff --git a/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/resources/osl.text-components.classtweaker b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/resources/osl.text-components.classtweaker new file mode 100644 index 000000000..aa5037216 --- /dev/null +++ b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/resources/osl.text-components.classtweaker @@ -0,0 +1,7 @@ +classTweaker v1 named + +accessible method net/minecraft/text/Text getTranslated ()Ljava/lang/String; +accessible method net/minecraft/text/Text getSiblings ()Ljava/util/List; +accessible method net/minecraft/text/Text getText ()Ljava/lang/String; + +transitive-inject-interface net/minecraft/server/command/source/CommandSource net/ornithemc/osl/text/impl/MessageConsumerImpl diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/src/main/resources/osl.text-components.mixins.json b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/resources/osl.text-components.mixins.json similarity index 87% rename from libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/src/main/resources/osl.text-components.mixins.json rename to libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/resources/osl.text-components.mixins.json index 7f5c435c3..5168e6f27 100644 --- a/libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/src/main/resources/osl.text-components.mixins.json +++ b/libraries/text-components/text-components-mc13w21a-mc1.6.4/src/main/resources/osl.text-components.mixins.json @@ -4,6 +4,7 @@ "package": "net.ornithemc.osl.text.impl.mixin", "compatibilityLevel": "JAVA_8", "mixins": [ + "common.CommandSourceMixin" ], "client": [ ], diff --git a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/BaseTextConverter.java b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/BaseTextConverter.java new file mode 100644 index 000000000..65d188712 --- /dev/null +++ b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/BaseTextConverter.java @@ -0,0 +1,31 @@ +package net.ornithemc.osl.text.impl; + +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; +import net.minecraft.text.TranslatableText; + +import net.ornithemc.osl.text.api.TextComponent; + +public class BaseTextConverter implements TextConverter { + + @Override + public Text convert(TextComponent component) { + Text text; + + if (component instanceof LiteralTextComponent) { + text = new LiteralText(((LiteralTextComponent) component).getValue()); + } else if (component instanceof TranslatableTextComponent) { + text = new TranslatableText(((TranslatableTextComponent) component).getKey(), ((TranslatableTextComponent) component).getArgs()); + } else { + text = new LiteralText(""); + } + + text.setStyle(StyleConverter.convert(component.getStyle())); + + for (TextComponent sibling : component.getSiblings()) { + text.append(this.convert(sibling)); + } + + return text; + } +} diff --git a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/StyleConverter.java b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/StyleConverter.java new file mode 100644 index 000000000..783aed481 --- /dev/null +++ b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/StyleConverter.java @@ -0,0 +1,70 @@ +package net.ornithemc.osl.text.impl; + +import net.minecraft.text.Text; + +import net.ornithemc.osl.core.impl.util.MinecraftVersion; +import net.ornithemc.osl.text.api.ClickEvent; +import net.ornithemc.osl.text.api.HoverEvent; +import net.ornithemc.osl.text.api.Style; +import net.ornithemc.osl.text.api.TextColor; +import net.ornithemc.osl.text.api.TextComponents; + +public final class StyleConverter { + + public static final boolean INSERTION_EXISTS = MinecraftVersion.resolve().compareTo("14w02a") >= 0; + + public static net.minecraft.text.Style convert(Style style) { + net.minecraft.text.Style s = new net.minecraft.text.Style(); + + if (style.getColor() != null) + s.setColor(convertTextColor(style.getColor())); + if (style.withBold(style.isBold()) != style) + s.setBold(style.isBold()); + if (style.withItalic(style.isItalic()) != style) + s.setItalic(style.isItalic()); + if (style.withUnderlined(style.isUnderlined()) != style) + s.setUnderlined(style.isUnderlined()); + if (style.withStrikethrough(style.isStrikethrough()) != style) + s.setStrikethrough(style.isStrikethrough()); + if (style.withObfuscated(style.isObfuscated()) != style) + s.setObfuscated(style.isObfuscated()); + if (style.getClickEvent() != null) + s.setClickEvent(convertClickEvent(style.getClickEvent())); + if (style.getHoverEvent() != null) + s.setHoverEvent(convertHoverEvent(style.getHoverEvent())); + if (INSERTION_EXISTS && style.getInsertion() != null) + s.setInsertion(style.getInsertion()); + + return s; + } + + public static net.minecraft.text.Formatting convertTextColor(TextColor color) { + if (!color.isFormatting()) { + return null; + } + + return net.minecraft.text.Formatting.valueOf(color.getFormatting().name()); + } + + public static net.minecraft.text.ClickEvent convertClickEvent(ClickEvent event) { + switch (event.getAction()) { + case OPEN_URL: + return new net.minecraft.text.ClickEvent(net.minecraft.text.ClickEvent.Action.OPEN_URL, event.getValue()); + case RUN_COMMAND: + return new net.minecraft.text.ClickEvent(net.minecraft.text.ClickEvent.Action.RUN_COMMAND, event.getValue()); + case SUGGEST_COMMAND: + return new net.minecraft.text.ClickEvent(net.minecraft.text.ClickEvent.Action.SUGGEST_COMMAND, event.getValue()); + default: + return null; // TODO + } + } + + public static net.minecraft.text.HoverEvent convertHoverEvent(HoverEvent event) { + switch (event.getAction()) { + case SHOW_TEXT: + return new net.minecraft.text.HoverEvent(net.minecraft.text.HoverEvent.Action.SHOW_TEXT, TextComponents.convert(event.getValue(), Text.class)); + default: + return null; // TODO + } + } +} diff --git a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/TextComponentsMixinPlugin.java b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/TextComponentsMixinPlugin.java deleted file mode 100644 index 948a797c0..000000000 --- a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/TextComponentsMixinPlugin.java +++ /dev/null @@ -1,49 +0,0 @@ -package net.ornithemc.osl.text.impl; - -import java.util.List; -import java.util.Set; - -import org.objectweb.asm.tree.ClassNode; - -import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; -import org.spongepowered.asm.mixin.extensibility.IMixinInfo; - -import net.ornithemc.osl.core.impl.util.MinecraftVersion; - -public class TextComponentsMixinPlugin implements IMixinConfigPlugin { - - @Override - public void onLoad(String mixinPackage) { - } - - @Override - public String getRefMapperConfig() { - return null; - } - - @Override - public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { - if ("net.ornithemc.osl.text.impl.mixin.common.StyleMixinNew".equals(mixinClassName)) { - return MinecraftVersion.resolve().compareTo("14w02a") >= 0; - } - - return true; - } - - @Override - public void acceptTargets(Set myTargets, Set otherTargets) { - } - - @Override - public List getMixins() { - return null; - } - - @Override - public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { - } - - @Override - public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { - } -} diff --git a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/TextResolversInit.java b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/TextInit.java similarity index 78% rename from libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/TextResolversInit.java rename to libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/TextInit.java index 277b866fe..dfabb7406 100644 --- a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/TextResolversInit.java +++ b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/TextInit.java @@ -1,16 +1,18 @@ package net.ornithemc.osl.text.impl; import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.text.TranslatableText; import net.ornithemc.osl.entrypoints.api.ModInitializer; import net.ornithemc.osl.text.api.TextComponents; -public class TextResolversInit implements ModInitializer { +public class TextInit implements ModInitializer { @Override public void init() { TextResolvers.register(LiteralText.class, new BaseTextResolver<>(t -> TextComponents.literal(t.getRawString()))); TextResolvers.register(TranslatableText.class, new BaseTextResolver<>(t -> TextComponents.translatable(t.getKey(), t.getArgs()))); + TextConverters.register(Text.class, new BaseTextConverter()); } } diff --git a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/CommandSourceMixin.java b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/CommandSourceMixin.java new file mode 100644 index 000000000..c3c35c78c --- /dev/null +++ b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/CommandSourceMixin.java @@ -0,0 +1,23 @@ +package net.ornithemc.osl.text.impl.mixin.common; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +import net.minecraft.server.command.source.CommandSource; +import net.minecraft.text.Text; + +import net.ornithemc.osl.text.api.MessageConsumer; +import net.ornithemc.osl.text.api.TextComponent; +import net.ornithemc.osl.text.api.TextComponents; + +@Mixin(CommandSource.class) +public interface CommandSourceMixin extends MessageConsumer { + + @Shadow + void sendMessage(Text messae); + + @Override + default void sendMessage(TextComponent message) { + this.sendMessage(TextComponents.convert(message, Text.class)); + } +} diff --git a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/StyleMixin.java b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/StyleMixin.java index 653b573f2..f81ed7359 100644 --- a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/StyleMixin.java +++ b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/StyleMixin.java @@ -8,6 +8,9 @@ import net.minecraft.text.HoverEvent; import net.minecraft.text.Style; +import net.ornithemc.conditionalmixin.annotations.Conditional; +import net.ornithemc.conditionalmixin.annotations.Version; + import net.ornithemc.osl.text.impl.access.StyleAccess; @Mixin(Style.class) @@ -29,6 +32,9 @@ public abstract class StyleMixin implements StyleAccess { private ClickEvent clickEvent; @Shadow private HoverEvent hoverEvent; + @Conditional(minecraftVersion = @Version(">=14w02a")) + @Shadow + private String insertion; @Override public Formatting osl$text$color() { @@ -69,4 +75,10 @@ public abstract class StyleMixin implements StyleAccess { public HoverEvent osl$text$hoverEvent() { return this.hoverEvent; } + + @Conditional(minecraftVersion = @Version(">=14w02a")) + @Override + public String osl$text$insertion() { + return this.insertion; + } } diff --git a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/StyleMixinNew.java b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/StyleMixinNew.java deleted file mode 100644 index ea2eec479..000000000 --- a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/java/net/ornithemc/osl/text/impl/mixin/common/StyleMixinNew.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.ornithemc.osl.text.impl.mixin.common; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -import net.minecraft.text.Style; - -import net.ornithemc.osl.text.impl.access.StyleAccess; - -@Mixin(Style.class) -public abstract class StyleMixinNew implements StyleAccess { - - @Shadow - private String insertion; - - @Override - public String osl$text$insertion() { - return this.insertion; - } -} diff --git a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/fabric.mod.json b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/fabric.mod.json index b4b026cc7..8894b4d6c 100644 --- a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/fabric.mod.json +++ b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/fabric.mod.json @@ -5,12 +5,13 @@ "environment": "*", "entrypoints": { "init": [ - "net.ornithemc.osl.text.impl.TextResolversInit" + "net.ornithemc.osl.text.impl.TextInit" ] }, "mixins": [ "osl.text-components.mixins.json" ], + "accessWidener": "osl.text-components.classtweaker", "depends": { "fabricloader": "\u003e\u003d0.18.0", "minecraft": "\u003e\u003d1.7-alpha.13.36.a \u003c\u003d1.14.4", diff --git a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/osl.text-components.classtweaker b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/osl.text-components.classtweaker new file mode 100644 index 000000000..b4ef17ccf --- /dev/null +++ b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/osl.text-components.classtweaker @@ -0,0 +1,3 @@ +classTweaker v1 named + +transitive-inject-interface net/minecraft/server/command/source/CommandSource net/ornithemc/osl/text/impl/MessageConsumerImpl diff --git a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/osl.text-components.mixins.json b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/osl.text-components.mixins.json index 3020527f7..da57edd50 100644 --- a/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/osl.text-components.mixins.json +++ b/libraries/text-components/text-components-mc13w36a-mc1.14.4/src/main/resources/osl.text-components.mixins.json @@ -3,10 +3,10 @@ "minVersion": "0.8", "package": "net.ornithemc.osl.text.impl.mixin", "compatibilityLevel": "JAVA_8", - "plugin": "net.ornithemc.osl.text.impl.TextComponentsMixinPlugin", + "plugin": "net.ornithemc.conditionalmixin.mixin.ConditionalMixinPlugin", "mixins": [ - "common.StyleMixin", - "common.StyleMixinNew" + "common.CommandSourceMixin", + "common.StyleMixin" ], "client": [ ], diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/build.gradle b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/build.gradle new file mode 100644 index 000000000..0a350fdb3 --- /dev/null +++ b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/build.gradle @@ -0,0 +1 @@ +setUpModule(project) diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/gradle.properties b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/gradle.properties new file mode 100644 index 000000000..2db5590fe --- /dev/null +++ b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/gradle.properties @@ -0,0 +1,6 @@ +min_mc_version = a1.0.1_01 +max_mc_version = 13w19a + +minecraft_version = 1.5.2 +raven_build = 1 +nests_build = 3 diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/TextResolversInit.java b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/java/net/ornithemc/osl/text/impl/TextInit.java similarity index 71% rename from libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/TextResolversInit.java rename to libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/java/net/ornithemc/osl/text/impl/TextInit.java index e5e7853c8..1ccde70a8 100644 --- a/libraries/text-components/text-components-mca1.0.1_01-mc1.6.4/src/main/java/net/ornithemc/osl/text/impl/TextResolversInit.java +++ b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/java/net/ornithemc/osl/text/impl/TextInit.java @@ -2,7 +2,7 @@ import net.ornithemc.osl.entrypoints.api.ModInitializer; -public class TextResolversInit implements ModInitializer { +public class TextInit implements ModInitializer { @Override public void init() { diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/java/net/ornithemc/osl/text/impl/mixin/common/CommandSourceMixin.java b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/java/net/ornithemc/osl/text/impl/mixin/common/CommandSourceMixin.java new file mode 100644 index 000000000..e5fb98fa5 --- /dev/null +++ b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/java/net/ornithemc/osl/text/impl/mixin/common/CommandSourceMixin.java @@ -0,0 +1,29 @@ +package net.ornithemc.osl.text.impl.mixin.common; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +import net.minecraft.server.command.source.CommandSource; + +import net.ornithemc.conditionalmixin.annotations.Conditional; +import net.ornithemc.conditionalmixin.annotations.GameSide; +import net.ornithemc.conditionalmixin.annotations.Version; + +import net.ornithemc.osl.text.api.MessageConsumer; +import net.ornithemc.osl.text.api.TextComponent; + +@Conditional(minecraftVersion = { + @Version(value = ">=12w16a", gameSide = GameSide.CLIENT), + @Version(value = ">=a0.1.2_01", gameSide = GameSide.SERVER) +}) +@Mixin(CommandSource.class) +public interface CommandSourceMixin extends MessageConsumer { + + @Shadow + void sendMessage(String messae); + + @Override + default void sendMessage(TextComponent message) { + this.sendMessage(message.buildFormattedString()); + } +} diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/resources/fabric.mod.json b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/resources/fabric.mod.json new file mode 100644 index 000000000..05c375777 --- /dev/null +++ b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/resources/fabric.mod.json @@ -0,0 +1,32 @@ +{ + "schemaVersion": 1, + "id": "osl-text-components", + "version": "0.1.0-alpha.6+mca1.0.1_01-mc13w19a", + "environment": "*", + "entrypoints": { + "init": [ + "net.ornithemc.osl.text.impl.TextInit" + ] + }, + "mixins": [ + "osl.text-components.mixins.json" + ], + "accessWidener": "osl.text-components.classtweaker", + "depends": { + "fabricloader": "\u003e\u003d0.18.0", + "minecraft": "\u003e\u003d1.0.0-alpha.0.1.1 \u003c\u003d1.6-alpha.13.19.a", + "osl-core": "\u003e\u003d0.7.0", + "osl-entrypoints": "\u003e\u003d0.5.0" + }, + "name": "OSL Text Components", + "description": "Versatile text components.", + "authors": [ + "OrnitheMC" + ], + "contact": { + "homepage": "https://ornithemc.net/", + "issues": "https://github.com/OrnitheMC/ornithe-standard-libraries/issues", + "sources": "https://github.com/OrnitheMC/ornithe-standard-libraries" + }, + "license": "Apache-2.0" +} \ No newline at end of file diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/resources/osl.text-components.classtweaker b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/resources/osl.text-components.classtweaker new file mode 100644 index 000000000..b4ef17ccf --- /dev/null +++ b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/resources/osl.text-components.classtweaker @@ -0,0 +1,3 @@ +classTweaker v1 named + +transitive-inject-interface net/minecraft/server/command/source/CommandSource net/ornithemc/osl/text/impl/MessageConsumerImpl diff --git a/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/resources/osl.text-components.mixins.json b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/resources/osl.text-components.mixins.json new file mode 100644 index 000000000..620b29abb --- /dev/null +++ b/libraries/text-components/text-components-mca1.0.1_01-mc13w19a/src/main/resources/osl.text-components.mixins.json @@ -0,0 +1,17 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.ornithemc.osl.text.impl.mixin", + "compatibilityLevel": "JAVA_8", + "plugin": "net.ornithemc.conditionalmixin.mixin.ConditionalMixinPlugin", + "mixins": [ + "common.CommandSourceMixin" + ], + "client": [ + ], + "server": [ + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/settings.gradle b/settings.gradle index 33bc9646e..ee1af9a6c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -189,5 +189,6 @@ include ':libraries:resource-loader:resource-loader-mc17w43a-mc19w05a' include ':libraries:resource-loader:resource-loader-mc19w07a-mc1.14.4' include ':libraries:text-components' -include ':libraries:text-components:text-components-mca1.0.1_01-mc1.6.4' +include ':libraries:text-components:text-components-mca1.0.1_01-mc13w19a' +include ':libraries:text-components:text-components-mc13w21a-mc1.6.4' include ':libraries:text-components:text-components-mc13w36a-mc1.14.4'