diff --git a/.gitignore b/.gitignore index dbe19d69..de713cfe 100644 --- a/.gitignore +++ b/.gitignore @@ -24,11 +24,13 @@ /bin /dist /manifest.mf +/run # Mac filesystem dust /.DS_Store /dependency-reduced-pom.xml +*.log /.gradle /fabric-1.16.1_client.launch /fabric-1.16.1_server.launch diff --git a/DynmapCore/src/main/resources/texture_1.txt b/DynmapCore/src/main/resources/texture_1.txt index 8b5080e1..d99b81a3 100644 --- a/DynmapCore/src/main/resources/texture_1.txt +++ b/DynmapCore/src/main/resources/texture_1.txt @@ -565,8 +565,8 @@ block:id=dirt,allfaces=0:dirt,stdrot=true # Coarse Dirt block:id=coarse_dirt,allfaces=0:coarse_dirt,stdrot=true # Pozdol -block:id=podzol,data=0,allsides=0:grass_block_snow,top=1000:grass_block_top,bottom=0:dirt,stdrot=true -block:id=podzol,data=1,allsides=1000:podzol_side,top=1000:podzol_top,bottom=0:dirt,stdrot=true +block:id=podzol,data=0,allsides=0:grass_block_snow,top=0:grass_block_top,bottom=0:dirt,stdrot=true +block:id=podzol,data=1,allsides=0:podzol_side,top=0:podzol_top,bottom=0:dirt,stdrot=true # Cobblestone block:id=cobblestone,allfaces=0:cobblestone,stdrot=true # Wooden Plank (oak) diff --git a/fabric-1.16.1/src/main/java/org/dynmap/fabric_1_16_1/command/DynmapCommandExecutor.java b/fabric-1.16.1/src/main/java/org/dynmap/fabric_1_16_1/command/DynmapCommandExecutor.java index e255fd8a..85031c89 100644 --- a/fabric-1.16.1/src/main/java/org/dynmap/fabric_1_16_1/command/DynmapCommandExecutor.java +++ b/fabric-1.16.1/src/main/java/org/dynmap/fabric_1_16_1/command/DynmapCommandExecutor.java @@ -45,7 +45,13 @@ public class DynmapCommandExecutor implements Command { @Override public int run(CommandContext context) throws CommandSyntaxException { - String[] args = context.getInput().split("\\s+"); + // Commands in brigadier may be proxied in Minecraft via a syntax like `/execute ... ... run dmap [args]` + // Dynmap will fail to parse this properly, so we find the starting position of the actual command being parsed after any forks or redirects. + // The start position of the range specifies where the actual command dynmap has registered starts + int start = context.getRange().getStart(); + String dynmapInput = context.getInput().substring(start); + + String[] args = dynmapInput.split("\\s+"); plugin.handleCommand(context.getSource(), cmd, Arrays.copyOfRange(args, 1, args.length)); return 1; } diff --git a/fabric-1.16.2/src/main/java/org/dynmap/fabric_1_16_2/command/DynmapCommandExecutor.java b/fabric-1.16.2/src/main/java/org/dynmap/fabric_1_16_2/command/DynmapCommandExecutor.java index 40b9ae38..d1619a81 100644 --- a/fabric-1.16.2/src/main/java/org/dynmap/fabric_1_16_2/command/DynmapCommandExecutor.java +++ b/fabric-1.16.2/src/main/java/org/dynmap/fabric_1_16_2/command/DynmapCommandExecutor.java @@ -45,7 +45,13 @@ public class DynmapCommandExecutor implements Command { @Override public int run(CommandContext context) throws CommandSyntaxException { - String[] args = context.getInput().split("\\s+"); + // Commands in brigadier may be proxied in Minecraft via a syntax like `/execute ... ... run dmap [args]` + // Dynmap will fail to parse this properly, so we find the starting position of the actual command being parsed after any forks or redirects. + // The start position of the range specifies where the actual command dynmap has registered starts + int start = context.getRange().getStart(); + String dynmapInput = context.getInput().substring(start); + + String[] args = dynmapInput.split("\\s+"); plugin.handleCommand(context.getSource(), cmd, Arrays.copyOfRange(args, 1, args.length)); return 1; }