forked from ChomeNS/chipmunkmod
FIX THE FUCKING SHIT BY A SINGLE FUCKING LINE OF THE FUCKING CODE
This commit is contained in:
parent
c04380b420
commit
08c3773660
2 changed files with 32 additions and 39 deletions
|
@ -10,6 +10,7 @@ import land.chipmunk.chipmunkmod.modules.ChomeNSBotCommandSuggestions;
|
||||||
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
|
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||||
|
import net.minecraft.client.network.ClientPlayNetworkHandler;
|
||||||
import net.minecraft.client.network.ClientPlayerEntity;
|
import net.minecraft.client.network.ClientPlayerEntity;
|
||||||
import net.minecraft.command.CommandSource;
|
import net.minecraft.command.CommandSource;
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
|
@ -28,10 +29,6 @@ public class ChatInputSuggestorMixin {
|
||||||
@Shadow
|
@Shadow
|
||||||
private CompletableFuture<Suggestions> pendingSuggestions;
|
private CompletableFuture<Suggestions> pendingSuggestions;
|
||||||
|
|
||||||
@Final
|
|
||||||
@Shadow
|
|
||||||
private boolean slashOptional;
|
|
||||||
|
|
||||||
@Shadow
|
@Shadow
|
||||||
public void show (boolean narrateFirstSuggestion) {}
|
public void show (boolean narrateFirstSuggestion) {}
|
||||||
|
|
||||||
|
@ -51,9 +48,6 @@ public class ChatInputSuggestorMixin {
|
||||||
|
|
||||||
@Inject(at = @At("TAIL"), method = "refresh()V")
|
@Inject(at = @At("TAIL"), method = "refresh()V")
|
||||||
public void refresh (CallbackInfo ci) {
|
public void refresh (CallbackInfo ci) {
|
||||||
try {
|
|
||||||
if (slashOptional) return;
|
|
||||||
|
|
||||||
final CommandManager commandManager = CommandManager.INSTANCE;
|
final CommandManager commandManager = CommandManager.INSTANCE;
|
||||||
|
|
||||||
final String text = this.textField.getText();
|
final String text = this.textField.getText();
|
||||||
|
@ -84,23 +78,21 @@ public class ChatInputSuggestorMixin {
|
||||||
|
|
||||||
show(true);
|
show(true);
|
||||||
});
|
});
|
||||||
|
} else if (cursor > commandManager.prefix.length() && text.startsWith(commandManager.prefix)) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cursor < commandManager.prefix.length() || !text.startsWith(commandManager.prefix)) return;
|
|
||||||
|
|
||||||
final StringReader reader = new StringReader(text);
|
final StringReader reader = new StringReader(text);
|
||||||
reader.setCursor(commandManager.prefix.length()); // Skip the prefix
|
reader.setCursor(commandManager.prefix.length()); // Skip the prefix
|
||||||
|
|
||||||
final CommandDispatcher<FabricClientCommandSource> dispatcher = commandManager.dispatcher;
|
|
||||||
final MinecraftClient client = MinecraftClient.getInstance();
|
final MinecraftClient client = MinecraftClient.getInstance();
|
||||||
final FabricClientCommandSource commandSource = (FabricClientCommandSource) client.getNetworkHandler().getCommandSource();
|
|
||||||
|
final ClientPlayNetworkHandler networkHandler = client.getNetworkHandler();
|
||||||
|
|
||||||
|
if (networkHandler == null) return;
|
||||||
|
|
||||||
|
final CommandDispatcher<FabricClientCommandSource> dispatcher = commandManager.dispatcher;
|
||||||
|
final FabricClientCommandSource commandSource = (FabricClientCommandSource) networkHandler.getCommandSource();
|
||||||
|
|
||||||
pendingSuggestions = dispatcher.getCompletionSuggestions(dispatcher.parse(reader, commandSource), cursor);
|
pendingSuggestions = dispatcher.getCompletionSuggestions(dispatcher.parse(reader, commandSource), cursor);
|
||||||
show(true);
|
show(true);
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,6 +54,7 @@ public class ChatScreenMixin extends Screen {
|
||||||
this.chatField.setFocusUnlocked(false);
|
this.chatField.setFocusUnlocked(false);
|
||||||
this.addSelectableChild(this.chatField);
|
this.addSelectableChild(this.chatField);
|
||||||
this.chatInputSuggestor = new ChatInputSuggestor(this.client, this, this.chatField, this.textRenderer, false, false, 1, 10, true, -805306368);
|
this.chatInputSuggestor = new ChatInputSuggestor(this.client, this, this.chatField, this.textRenderer, false, false, 1, 10, true, -805306368);
|
||||||
|
this.chatInputSuggestor.setCanLeave(false);
|
||||||
this.chatInputSuggestor.refresh();
|
this.chatInputSuggestor.refresh();
|
||||||
this.setInitialFocus(this.chatField);
|
this.setInitialFocus(this.chatField);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue