Update to 1.20.4
This commit is contained in:
45
build.gradle
45
build.gradle
@@ -1,7 +1,7 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'eclipse'
|
||||
id 'net.minecraftforge.gradle' version '6.0.+'
|
||||
id 'net.minecraftforge.gradle' version '[6.0.16,6.2)'
|
||||
id 'me.hypherionmc.cursegradle' version '2.+'
|
||||
}
|
||||
|
||||
@@ -17,61 +17,38 @@ minecraft {
|
||||
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
|
||||
|
||||
runs {
|
||||
client {
|
||||
configureEach {
|
||||
workingDirectory project.file('run')
|
||||
}
|
||||
|
||||
client {
|
||||
taskName "${project.name}Client"
|
||||
|
||||
mods {
|
||||
"${mod_id}" {
|
||||
source sourceSets.main
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
workingDirectory project.file('run')
|
||||
taskName "${project.name}Server"
|
||||
|
||||
mods {
|
||||
"${mod_id}" {
|
||||
source sourceSets.main
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gameTestServer {
|
||||
workingDirectory project.file('run')
|
||||
taskName "${project.name}GameTest"
|
||||
|
||||
mods {
|
||||
"${mod_id}" {
|
||||
source sourceSets.main
|
||||
}
|
||||
}
|
||||
property 'forge.enabledGameTestNamespaces', mod_id
|
||||
}
|
||||
|
||||
data {
|
||||
workingDirectory project.file('run')
|
||||
workingDirectory project.file('run-data')
|
||||
taskName "${project.name}Data"
|
||||
|
||||
args '--mod', "${mod_id}", '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
|
||||
|
||||
mods {
|
||||
"${mod_id}" {
|
||||
source sourceSets.main
|
||||
}
|
||||
}
|
||||
args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets.main.resources.srcDir 'src/generated/resources'
|
||||
sourceSets.main.resources { srcDir 'src/generated/resources' }
|
||||
|
||||
dependencies {
|
||||
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
|
||||
}
|
||||
|
||||
jar {
|
||||
tasks.named('jar', Jar).configure {
|
||||
manifest {
|
||||
attributes([
|
||||
"Specification-Title": "${mod_id}",
|
||||
@@ -86,7 +63,7 @@ jar {
|
||||
}
|
||||
}
|
||||
|
||||
processResources {
|
||||
tasks.named('processResources', ProcessResources).configure {
|
||||
outputs.upToDateWhen {
|
||||
false
|
||||
}
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
mod_id = worldhandler
|
||||
mod_name = WorldHandler
|
||||
mod_version = 3.5.1
|
||||
minecraft_version = 1.20.2
|
||||
minecraft_version = 1.20.4
|
||||
group = exopandora.worldhandler
|
||||
main_class = exopandora.worldhandler.Main
|
||||
author = Exopandora
|
||||
|
||||
# Forge
|
||||
forge_version = 48.0.0
|
||||
forge_compatible_minecraft_versions = 1.20.2
|
||||
forge_version = 49.0.3
|
||||
forge_compatible_minecraft_versions = 1.20.3,1.20.4
|
||||
|
||||
# Publishing
|
||||
curse_project_id = 228970
|
||||
|
||||
@@ -11,7 +11,7 @@ public class Main
|
||||
{
|
||||
public static final String NAME = "World Handler";
|
||||
public static final String MODID = "worldhandler";
|
||||
public static final String MC_VERSION = "1.20.2";
|
||||
public static final String MC_VERSION = "1.20.4";
|
||||
public static final String MOD_VERSION = "3.5.1";
|
||||
public static final String URL = "https://minecraft.curseforge.com/projects/world-handler-command-gui";
|
||||
|
||||
|
||||
@@ -37,7 +37,6 @@ public class WorldHandler
|
||||
public static final Logger LOGGER = LogManager.getLogger();
|
||||
public static final Path USERCONTENT_PATH = FMLPaths.CONFIGDIR.get().resolve(Main.MODID).resolve("usercontent");
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public WorldHandler()
|
||||
{
|
||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
|
||||
@@ -2,25 +2,34 @@ package exopandora.worldhandler.builder.argument;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.mojang.brigadier.StringReader;
|
||||
import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import com.mojang.serialization.JsonOps;
|
||||
|
||||
import exopandora.worldhandler.builder.argument.PrimitiveArgument.Linkage;
|
||||
import exopandora.worldhandler.builder.argument.PrimitiveArgument.Operation;
|
||||
import exopandora.worldhandler.builder.argument.PrimitiveArgument.Relation;
|
||||
import exopandora.worldhandler.builder.argument.PrimitiveArgument.Type;
|
||||
import exopandora.worldhandler.util.EnumHelper;
|
||||
import net.minecraft.Util;
|
||||
import net.minecraft.advancements.critereon.MinMaxBounds;
|
||||
import net.minecraft.commands.ParserUtils;
|
||||
import net.minecraft.commands.arguments.EntityAnchorArgument.Anchor;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.Style;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.Difficulty;
|
||||
import net.minecraft.world.scores.criteria.ObjectiveCriteria.RenderType;
|
||||
|
||||
public class Arguments
|
||||
{
|
||||
private static final Gson GSON = (new GsonBuilder()).disableHtmlEscaping().create();
|
||||
|
||||
public static PrimitiveArgument<Short> shortArg()
|
||||
{
|
||||
return PrimitiveArgument.builder(string ->
|
||||
@@ -339,4 +348,21 @@ public class Arguments
|
||||
{
|
||||
return new DimensionArgument();
|
||||
}
|
||||
|
||||
public static PrimitiveArgument<Style> style()
|
||||
{
|
||||
return PrimitiveArgument.<Style>builder(string ->
|
||||
{
|
||||
try
|
||||
{
|
||||
return ParserUtils.parseJson(new StringReader(string), Style.Serializer.CODEC);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.serializer(style -> GSON.toJson(Util.getOrThrow(Style.Serializer.CODEC.encodeStart(JsonOps.INSTANCE, style), JsonParseException::new)))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -338,6 +338,7 @@ public class ExecuteCommandBuilder extends CommandBuilder
|
||||
private final PrimitiveArgument<String> targetObjective = Arguments.word();
|
||||
private final PrimitiveArgument<String> sourceObjective = Arguments.word();
|
||||
private final RangeArgument<Integer> range = Arguments.intRange();
|
||||
private final PrimitiveArgument<ResourceLocation> function = Arguments.resourceLocation();
|
||||
private final CommandNodeLiteral root;
|
||||
|
||||
public ConditionOptionalArgument(String condition, Label label)
|
||||
@@ -406,7 +407,10 @@ public class ExecuteCommandBuilder extends CommandBuilder
|
||||
.label(Label.SCORE_GE))))
|
||||
.then(CommandNode.literal("matches")
|
||||
.then(CommandNode.argument("range", this.range)
|
||||
.label(Label.SCORE_MATCHES))))));
|
||||
.label(Label.SCORE_MATCHES))))))
|
||||
.then(CommandNode.literal("function")
|
||||
.then(CommandNode.argument("function", this.function)
|
||||
.label(Label.FUNCTION)));
|
||||
}
|
||||
|
||||
public BlockPosArgument pos()
|
||||
@@ -469,6 +473,11 @@ public class ExecuteCommandBuilder extends CommandBuilder
|
||||
return this.range;
|
||||
}
|
||||
|
||||
public PrimitiveArgument<ResourceLocation> function()
|
||||
{
|
||||
return this.function;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CommandNodeLiteral root()
|
||||
{
|
||||
@@ -492,7 +501,8 @@ public class ExecuteCommandBuilder extends CommandBuilder
|
||||
SCORE_EQ,
|
||||
SCORE_GT,
|
||||
SCORE_GE,
|
||||
SCORE_MATCHES;
|
||||
SCORE_MATCHES,
|
||||
FUNCTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import exopandora.worldhandler.builder.argument.PrimitiveArgument;
|
||||
import exopandora.worldhandler.builder.argument.PrimitiveArgument.Operation;
|
||||
import exopandora.worldhandler.builder.argument.TargetArgument;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.Style;
|
||||
import net.minecraft.world.scores.criteria.ObjectiveCriteria.RenderType;
|
||||
|
||||
public class ScoreboardCommandBuilder extends CommandBuilder
|
||||
@@ -17,11 +18,13 @@ public class ScoreboardCommandBuilder extends CommandBuilder
|
||||
private final PrimitiveArgument<Component> displayName = Arguments.textComponent();
|
||||
private final PrimitiveArgument<String> slot = Arguments.word();
|
||||
private final PrimitiveArgument<RenderType> renderType = Arguments.renderType();
|
||||
private final PrimitiveArgument<Boolean> displayAutoUpdate = Arguments.boolArg();
|
||||
private final TargetArgument target = Arguments.target();
|
||||
private final TargetArgument targets = Arguments.target();
|
||||
private final PrimitiveArgument<Integer> score = Arguments.intArg();
|
||||
private final PrimitiveArgument<Operation> operation = Arguments.operation();
|
||||
private final PrimitiveArgument<String> sourceObjective = Arguments.word();
|
||||
private final PrimitiveArgument<Style> style = Arguments.style();
|
||||
|
||||
private final CommandNodeLiteral root = CommandNode.literal("scoreboard")
|
||||
.then(CommandNode.literal("objectives")
|
||||
@@ -39,7 +42,18 @@ public class ScoreboardCommandBuilder extends CommandBuilder
|
||||
.label(Label.OBJECTIVES_MODIFY_DISPLAYNAME)))
|
||||
.then(CommandNode.literal("rendertype")
|
||||
.then(CommandNode.argument("renderType", this.renderType)
|
||||
.label(Label.OBJECTIVES_MODIFY_RENDERTYPE)))))
|
||||
.label(Label.OBJECTIVES_MODIFY_RENDERTYPE)))
|
||||
.then(CommandNode.literal("displayautoupdate")
|
||||
.then(CommandNode.argument("displayAutoUpdate", this.displayAutoUpdate)
|
||||
.label(Label.OBJECTIVES_MODIFY_DISPLAYAUTOUPDATE)))
|
||||
.then(CommandNode.literal("numberformat")
|
||||
.label(Label.OBJECTIVES_MODIFY_NUMBERFORMAT)
|
||||
.then(CommandNode.argument("styled", this.style)
|
||||
.label(Label.OBJECTIVES_MODIFY_NUMBERFORMAT_STYLED))
|
||||
.then(CommandNode.argument("fixed", this.displayName)
|
||||
.label(Label.OBJECTIVES_MODIFY_NUMBERFORMAT_FIXED))
|
||||
.then(CommandNode.literal("blank")
|
||||
.label(Label.OBJECTIVES_MODIFY_NUMBERFORMAT_BLANK)))))
|
||||
.then(CommandNode.literal("remove")
|
||||
.then(CommandNode.argument("objective", this.objective)
|
||||
.label(Label.OBJECTIVES_REMOVE)))
|
||||
@@ -87,6 +101,23 @@ public class ScoreboardCommandBuilder extends CommandBuilder
|
||||
.label(Label.PLAYERS_ENABLE)
|
||||
.then(CommandNode.argument("objective", this.objective)
|
||||
.label(Label.PLAYERS_ENABLE_OBJECTIVE))))
|
||||
.then(CommandNode.literal("display")
|
||||
.then(CommandNode.literal("name")
|
||||
.then(CommandNode.argument("targets", this.targets)
|
||||
.then(CommandNode.argument("objective", this.objective)
|
||||
.label(Label.PLAYERS_DISPLAY)
|
||||
.then(CommandNode.argument("name", this.displayName)
|
||||
.label(Label.PLAYERS_DISPLAY_NAME))))
|
||||
.then(CommandNode.literal("numberformat")
|
||||
.then(CommandNode.argument("targets", this.targets)
|
||||
.then(CommandNode.argument("objective", this.objective)
|
||||
.label(Label.PLAYERS_DISPLAY_NUMBERFORMAT)
|
||||
.then(CommandNode.argument("styled", this.style)
|
||||
.label(Label.PLAYERS_DISPLAY_NUMBERFORMAT_STYLED))
|
||||
.then(CommandNode.argument("fixed", this.displayName)
|
||||
.label(Label.PLAYERS_DISPLAY_NUMBERFORMAT_FIXED))
|
||||
.then(CommandNode.literal("blank")
|
||||
.label(Label.PLAYERS_DISPLAY_NUMBERFORMAT_BLANK)))))))
|
||||
.then(CommandNode.literal("operation")
|
||||
.then(CommandNode.argument("targetObjective", this.objective)
|
||||
.then(CommandNode.argument("operation", this.operation)
|
||||
@@ -144,6 +175,11 @@ public class ScoreboardCommandBuilder extends CommandBuilder
|
||||
return this.sourceObjective;
|
||||
}
|
||||
|
||||
public PrimitiveArgument<Style> style()
|
||||
{
|
||||
return this.style;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CommandNodeLiteral root()
|
||||
{
|
||||
@@ -157,6 +193,11 @@ public class ScoreboardCommandBuilder extends CommandBuilder
|
||||
OBJECTIVES_ADD_DISPLAYNAME,
|
||||
OBJECTIVES_MODIFY_DISPLAYNAME,
|
||||
OBJECTIVES_MODIFY_RENDERTYPE,
|
||||
OBJECTIVES_MODIFY_DISPLAYAUTOUPDATE,
|
||||
OBJECTIVES_MODIFY_NUMBERFORMAT,
|
||||
OBJECTIVES_MODIFY_NUMBERFORMAT_STYLED,
|
||||
OBJECTIVES_MODIFY_NUMBERFORMAT_FIXED,
|
||||
OBJECTIVES_MODIFY_NUMBERFORMAT_BLANK,
|
||||
OBJECTIVES_REMOVE,
|
||||
OBJECTIVES_SETDISPLAY_SLOT,
|
||||
OBJECTIVES_SETDISPLAY_SLOT_OBJECTIVE,
|
||||
@@ -170,6 +211,12 @@ public class ScoreboardCommandBuilder extends CommandBuilder
|
||||
PLAYERS_RESET_SCORE,
|
||||
PLAYERS_ENABLE,
|
||||
PLAYERS_ENABLE_OBJECTIVE,
|
||||
PLAYERS_OPERATION;
|
||||
PLAYERS_OPERATION,
|
||||
PLAYERS_DISPLAY,
|
||||
PLAYERS_DISPLAY_NAME,
|
||||
PLAYERS_DISPLAY_NUMBERFORMAT,
|
||||
PLAYERS_DISPLAY_NUMBERFORMAT_STYLED,
|
||||
PLAYERS_DISPLAY_NUMBERFORMAT_FIXED,
|
||||
PLAYERS_DISPLAY_NUMBERFORMAT_BLANK;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,7 +86,10 @@ public class ContentChangeWorld extends ContentChild
|
||||
}
|
||||
else if(connection instanceof IntegratedConnection integrated)
|
||||
{
|
||||
Minecraft.getInstance().createWorldOpenFlows().loadLevel(new TitleScreen(), integrated.getFolder());
|
||||
Minecraft.getInstance().createWorldOpenFlows().checkForBackupAndLoad(integrated.getFolder(), () ->
|
||||
{
|
||||
Minecraft.getInstance().setScreen(new TitleScreen());
|
||||
});
|
||||
Minecraft.getInstance().mouseHandler.grabMouse();
|
||||
}
|
||||
else if(connection instanceof DedicatedConnection dedicated)
|
||||
|
||||
@@ -23,9 +23,9 @@ public class GuiHintTextField extends EditBox
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks)
|
||||
public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks)
|
||||
{
|
||||
super.render(guiGraphics, mouseX, mouseY, partialTicks);
|
||||
super.renderWidget(guiGraphics, mouseX, mouseY, partialTicks);
|
||||
|
||||
if(this.isVisible() && !this.isFocused() && this.hint != null && ChatFormatting.stripFormatting(this.getValue()).isEmpty())
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ import net.minecraft.network.chat.ClickEvent.Action;
|
||||
import net.minecraft.network.chat.ComponentContents;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.Style;
|
||||
import net.minecraft.network.chat.contents.LiteralContents;
|
||||
import net.minecraft.network.chat.contents.PlainTextContents;
|
||||
|
||||
public class UserStylableComponent extends MutableComponent
|
||||
{
|
||||
@@ -20,7 +20,7 @@ public class UserStylableComponent extends MutableComponent
|
||||
|
||||
public UserStylableComponent()
|
||||
{
|
||||
super(ComponentContents.EMPTY, Lists.newArrayList(), Style.EMPTY);
|
||||
super(PlainTextContents.EMPTY, Lists.newArrayList(), Style.EMPTY);
|
||||
}
|
||||
|
||||
public void setText(String text)
|
||||
@@ -66,10 +66,10 @@ public class UserStylableComponent extends MutableComponent
|
||||
{
|
||||
if(this.isStyled())
|
||||
{
|
||||
return new LiteralContents(applyStyleFormatting(this.text));
|
||||
return PlainTextContents.create(applyStyleFormatting(this.text));
|
||||
}
|
||||
|
||||
return new LiteralContents(this.text);
|
||||
return PlainTextContents.create(this.text);
|
||||
}
|
||||
|
||||
public boolean isStyled()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
modLoader="javafml"
|
||||
loaderVersion="[48,)"
|
||||
loaderVersion="[49,)"
|
||||
updateJSONURL="https://raw.githubusercontent.com/Exopandora/worldhandler/master/version.json"
|
||||
issueTrackerURL="https://github.com/Exopandora/WorldHandler/issues"
|
||||
displayURL="https://minecraft.curseforge.com/projects/world-handler-command-gui"
|
||||
@@ -11,13 +11,13 @@ license="GPL v3.0"
|
||||
|
||||
[[mods]]
|
||||
modId="worldhandler"
|
||||
version="1.20.2-${version}"
|
||||
version="1.20.4-${version}"
|
||||
displayName="World Handler"
|
||||
description="The World Handler provides a simple and easy to use graphical user interface for commands. It lets you create powerful and complex sub-commands alongside NBT-structures within seconds."
|
||||
|
||||
[[dependencies.worldhandler]]
|
||||
modId="minecraft"
|
||||
mandatory=true
|
||||
versionRange="[1.20.2,)"
|
||||
versionRange="[1.20.3,)"
|
||||
ordering="NONE"
|
||||
side="BOTH"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"pack": {
|
||||
"description": "World Handler",
|
||||
"pack_format": 18
|
||||
"pack_format": 22
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user