From 86c3bf03fd86ad390d335057045b58c95abb1a3b Mon Sep 17 00:00:00 2001 From: AmyMialee <10999535+AmyMialee@users.noreply.github.com> Date: Thu, 19 Feb 2026 22:26:23 +0000 Subject: [PATCH 1/2] Add maximum map size cap This is to prevent server crashes or abuse, but can be configured by admins --- .../java/space/essem/image2map/Image2Map.java | 17 +++++++++++++---- .../essem/image2map/config/Image2MapConfig.java | 4 ++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/space/essem/image2map/Image2Map.java b/src/main/java/space/essem/image2map/Image2Map.java index b1c7bdf..11433a5 100644 --- a/src/main/java/space/essem/image2map/Image2Map.java +++ b/src/main/java/space/essem/image2map/Image2Map.java @@ -80,8 +80,8 @@ public void onInitialize() { .requires(Permissions.require("image2map.use", CONFIG.minPermLevel)) .then(literal("create") .requires(Permissions.require("image2map.create", 0)) - .then(argument("width", IntegerArgumentType.integer(1)) - .then(argument("height", IntegerArgumentType.integer(1)) + .then(argument("width", IntegerArgumentType.integer(1, CONFIG.maxSize)) + .then(argument("height", IntegerArgumentType.integer(1, CONFIG.maxSize)) .then(argument("mode", StringArgumentType.word()).suggests(new DitherModeSuggestionProvider()) .then(argument("path", StringArgumentType.greedyString()) .executes(this::createMap)) @@ -96,8 +96,8 @@ public void onInitialize() { ) .then(literal("create-folder") .requires(Permissions.require("image2map.createfolder", 3).and(x -> CONFIG.allowLocalFiles)) - .then(argument("width", IntegerArgumentType.integer(1)) - .then(argument("height", IntegerArgumentType.integer(1)) + .then(argument("width", IntegerArgumentType.integer(1, CONFIG.maxSize)) + .then(argument("height", IntegerArgumentType.integer(1, CONFIG.maxSize)) .then(argument("mode", StringArgumentType.word()).suggests(new DitherModeSuggestionProvider()) .then(argument("path", StringArgumentType.greedyString()) .executes(this::createMapFromFolder)) @@ -305,6 +305,11 @@ private int createMap(CommandContext context) throws Command int finalHeight = height; int finalWidth = width; + + if (finalHeight > CONFIG.maxSize || finalWidth > CONFIG.maxSize) { + source.sendSuccess(() -> Component.literal("Map size exceeds maximum allowed (" + CONFIG.maxSize + "x" + CONFIG.maxSize + "), was " + finalWidth + "x" + finalHeight), false); + return null; + } source.sendSuccess(() -> Component.literal("Converting into maps..."), false); CompletableFuture.supplyAsync(() -> MapRenderer.render(image, mode, finalWidth, finalHeight)).thenAcceptAsync(mapImage -> { @@ -350,6 +355,10 @@ private int createMapFromFolder(CommandContext context) thro int finalHeight = height; int finalWidth = width; + + if (finalHeight > CONFIG.maxSize || finalWidth > CONFIG.maxSize) { + throw new SimpleCommandExceptionType(() -> "Map size exceeds maximum allowed (1024x1024), was " + finalWidth + "x" + finalHeight).create(); + } source.sendSuccess(() -> Component.literal("Converting into maps..."), false); var mapImage = MapRenderer.render(image, mode, finalWidth, finalHeight); diff --git a/src/main/java/space/essem/image2map/config/Image2MapConfig.java b/src/main/java/space/essem/image2map/config/Image2MapConfig.java index e6bc484..c23c91f 100644 --- a/src/main/java/space/essem/image2map/config/Image2MapConfig.java +++ b/src/main/java/space/essem/image2map/config/Image2MapConfig.java @@ -17,7 +17,7 @@ public class Image2MapConfig { public boolean allowLocalFiles = false; public int minPermLevel = 2; - + public int maxSize = 1024; public static Image2MapConfig loadOrCreateConfig() { try { @@ -54,4 +54,4 @@ public static void saveConfig(Image2MapConfig config) { e.printStackTrace(); } } -} +} \ No newline at end of file From b6a4df0211fe1e010c4895c18e8081df31f78e0f Mon Sep 17 00:00:00 2001 From: AmyMialee <10999535+AmyMialee@users.noreply.github.com> Date: Thu, 19 Feb 2026 23:59:55 +0000 Subject: [PATCH 2/2] Fix scale command limit --- src/main/java/space/essem/image2map/gui/PreviewGui.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/space/essem/image2map/gui/PreviewGui.java b/src/main/java/space/essem/image2map/gui/PreviewGui.java index 1b15b62..edb704c 100644 --- a/src/main/java/space/essem/image2map/gui/PreviewGui.java +++ b/src/main/java/space/essem/image2map/gui/PreviewGui.java @@ -220,13 +220,13 @@ private static RequiredArgumentBuilder argument(String name, })); COMMANDS.register(literal("size") - .then(argument("width", IntegerArgumentType.integer(1)) + .then(argument("width", IntegerArgumentType.integer(1, Image2Map.CONFIG.maxSize)) .executes(x -> { var w = IntegerArgumentType.getInteger(x, "width"); x.getSource().setSize(w, x.getSource().sourceImage.getHeight() * w / x.getSource().sourceImage.getWidth()); return 0; }) - .then(argument("height", IntegerArgumentType.integer(1)).executes(x -> { + .then(argument("height", IntegerArgumentType.integer(1, Image2Map.CONFIG.maxSize)).executes(x -> { x.getSource().setSize(IntegerArgumentType.getInteger(x, "width"), IntegerArgumentType.getInteger(x, "height")); return 0; })))