Skip to content

Commit

Permalink
Merge branch 'master' into dev
Browse files Browse the repository at this point in the history
# Conflicts:
#	src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java
  • Loading branch information
Dream-Master committed Aug 28, 2024
2 parents b69d950 + 380b9dc commit dcc1c2b
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 3 deletions.
6 changes: 3 additions & 3 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,16 @@ dependencies {
compileOnly("com.gtnewhorizons.retrofuturabootstrap:RetroFuturaBootstrap:1.0.2") { transitive = false }

transformedMod("com.github.GTNewHorizons:NotEnoughItems:2.6.26-GTNH:dev") // force a more up-to-date NEI version
transformedModCompileOnly("com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-435-GTNH")
transformedModCompileOnly("com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-440-GTNH")
transformedModCompileOnly("com.github.GTNewHorizons:Baubles:1.0.4:dev")
// Transitive updates to make runClient17 work
transformedModCompileOnly("com.github.GTNewHorizons:ForgeMultipart:1.5.0:dev")
transformedModCompileOnly("com.github.GTNewHorizons:GT5-Unofficial:5.09.49.23:dev")
transformedModCompileOnly("com.github.GTNewHorizons:GT5-Unofficial:5.09.49.33:dev")
transformedModCompileOnly("com.github.GTNewHorizons:harvestcraft:1.2.1-GTNH:dev")
transformedModCompileOnly("com.github.GTNewHorizons:HungerOverhaul:1.1.0-GTNH:dev")
transformedModCompileOnly("com.github.GTNewHorizons:MrTJPCore:1.2.1:dev") // Do not update, fixed afterwards
transformedModCompileOnly("com.github.GTNewHorizons:Railcraft:9.15.11:dev") { exclude group: "thaumcraft", module: "Thaumcraft" }
transformedModCompileOnly("com.github.GTNewHorizons:TinkersConstruct:1.12.6-GTNH:dev")
transformedModCompileOnly("com.github.GTNewHorizons:TinkersConstruct:1.12.8-GTNH:dev")
transformedModCompileOnly(rfg.deobf("curse.maven:bibliocraft-228027:2423369"))
transformedModCompileOnly("curse.maven:biomes-o-plenty-220318:2499612")
transformedModCompileOnly("curse.maven:cofh-core-69162:2388751")
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/com/mitchej123/hodgepodge/config/FixesConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,16 @@ public class FixesConfig {
@Config.RequiresMcRestart
public static boolean earlyChunkTileCoordinateCheckDestructive;

@Config.Comment("Fix forge command handler not checking for a / and also not running commands with any case")
@Config.DefaultBoolean(true)
@Config.RequiresMcRestart
public static boolean fixSlashCommands;

@Config.Comment("Fix the command handler not allowing you to run commands typed in any case")
@Config.DefaultBoolean(true)
@Config.RequiresMcRestart
public static boolean fixCaseCommands;

// affecting multiple mods

@Config.Comment("Remove old/stale/outdated update checks.")
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,16 @@ public enum Mixins {
.addMixinClasses("minecraft.MixinMinecraft_FixDuplicateSounds")
.setApplyIf(() -> FixesConfig.fixDuplicateSounds)),

FIX_SLASH_COMMAND(
new Builder("Fix forge command handler not checking for a / and also not running commands with any case")
.setPhase(Phase.EARLY).setSide(Side.CLIENT).addTargetedMod(TargetedMod.VANILLA)
.addMixinClasses("minecraft.MixinClientCommandHandler_CommandFix")
.setApplyIf(() -> FixesConfig.fixSlashCommands)),

FIX_CASE_COMMAND(new Builder("Fix the command handler not allowing you to run commands typed in any case")
.setPhase(Phase.EARLY).setSide(Side.BOTH).addTargetedMod(TargetedMod.VANILLA)
.addMixinClasses("minecraft.MixinCommandHandler_CommandFix").setApplyIf(() -> FixesConfig.fixCaseCommands)),

ADD_MOD_ITEM_STATS(new Builder("Add stats for modded items").addMixinClasses("fml.MixinGameRegistry")
.addTargetedMod(TargetedMod.VANILLA).setApplyIf(() -> TweaksConfig.addModItemStats).setPhase(Phase.EARLY)
.setSide(Side.BOTH)),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.mitchej123.hodgepodge.mixins.early.minecraft;

import java.util.Locale;

import net.minecraft.command.ICommandSender;
import net.minecraftforge.client.ClientCommandHandler;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;

@Mixin(ClientCommandHandler.class)
public class MixinClientCommandHandler_CommandFix {

@Inject(method = "executeCommand", at = @At("HEAD"), cancellable = true)
private void hodgepodge$checkSlash(ICommandSender sender, String message, CallbackInfoReturnable<Integer> cir) {
if (!message.trim().startsWith("/")) {
cir.setReturnValue(0);
}
}

@ModifyExpressionValue(
method = "executeCommand",
at = @At(value = "INVOKE", target = "Ljava/lang/String;split(Ljava/lang/String;)[Ljava/lang/String;"))
private String[] hodgepodge$caseCommand(String[] original) {
final String s = original[0];
if (s != null) {
original[0] = s.toLowerCase(Locale.ENGLISH);
}
return original;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package com.mitchej123.hodgepodge.mixins.early.minecraft;

import java.util.Locale;

import net.minecraft.command.CommandHandler;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;

@Mixin(CommandHandler.class)
public class MixinCommandHandler_CommandFix {

@ModifyExpressionValue(
method = "executeCommand",
at = @At(
value = "INVOKE",
target = "Ljava/lang/String;split(Ljava/lang/String;)[Ljava/lang/String;",
remap = false))
private String[] hodgepodge$caseCommand(String[] original) {
final String s = original[0];
if (s != null) {
original[0] = s.toLowerCase(Locale.ENGLISH);
}
return original;
}

@ModifyArg(
method = "registerCommand",
index = 0,
at = @At(
value = "INVOKE",
target = "Ljava/util/Map;put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;",
remap = false))
private Object hodgepodge$caseCommand(Object s) {
if (s instanceof String) {
s = ((String) s).toLowerCase(Locale.ENGLISH);
}
return s;
}

@ModifyExpressionValue(
method = "getPossibleCommands(Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Ljava/util/List;",
at = @At(
value = "INVOKE",
target = "Ljava/lang/String;split(Ljava/lang/String;I)[Ljava/lang/String;",
remap = false))
private String[] hodgepodge$caseCommandTabComplete(String[] original) {
final String s = original[0];
if (s != null) {
original[0] = s.toLowerCase(Locale.ENGLISH);
}
return original;
}

}

0 comments on commit dcc1c2b

Please sign in to comment.