Skip to content
This repository has been archived by the owner on Sep 2, 2024. It is now read-only.

fix /importfile erroring & update char limit #74

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/main/java/io/github/homchom/recode/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
public final class Main implements ClientModInitializer {
@Override
public void onInitializeClient() {
System.setProperty("java.awt.headless", "false"); // Enable AWT features
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line used to be in the mod, but we removed it because Minecraft runs in headless mode for a reason. Unless I am mistaken, /importfile should use native code, not AWT.

Copy link
Contributor Author

@RedVortexDev RedVortexDev Mar 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like FileDialog is in fact AWT, also from my testing this works perfectly fine, don't see why its an issue

Copy link
Owner

@homchom homchom Mar 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FileDialog is AWT, but we shouldn't be using FIleDialog. It works for you because you are not on a headless machine. For more reference, see how Minecraft implements the "Open Resource Pack Folder" button.

Copy link
Contributor Author

@RedVortexDev RedVortexDev Mar 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minecraft uses their own Util class for getting the operating system where they open a folder using a URI command, I don't see how opening a folder is related to picking a file. If it is in fact possible to use a URI command to open a file picker I would love for someone else to work on fixing /importfile since I cannot figure this one out and it's a pretty useful command.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not entirely sure it matters; I'm just going off of what I've looked up and heard in the Fabric discord. I think the idea is that native code can be extended to do more than AWT (since Minecraft used to run on the Raspberry Pi, etc), but for 99.9% of users this isn't an issue. For now I'm just working on other things so I'll leave it to other contributors to debate.


Recode.INSTANCE.initialize();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ public void register(Minecraft mc, CommandDispatcher<FabricClientCommandSource>

while (sc.hasNextLine()) {
String line = sc.nextLine();
if (line.length() > 2000) {
ChatUtil.sendMessage("Line " + (lines.size() + 1) + " is too long! (" + line.length() + " > 2000)", ChatType.FAIL);
if (line.length() > 10_000) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason this should be raised to 10,000 specifically? How did you come up with this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's the new string limit on DiamondFire

ChatUtil.sendMessage("Line " + (lines.size() + 1) + " is too long! (" + line.length() + " > 10,000)", ChatType.FAIL);
continue files;
}
lines.add(line);
Expand Down
Loading