Skip to content

Commit

Permalink
Merge pull request #201 from RedstoneTools/dev
Browse files Browse the repository at this point in the history
Update 1.1.3
  • Loading branch information
Matthias1590 committed Jun 3, 2023
2 parents f66ff95 + 7b60c02 commit 9e74d05
Show file tree
Hide file tree
Showing 23 changed files with 137 additions and 234 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx4G
loader_version=0.14.6

# Mod Properties
mod_version = 1.18.2-1.1.2
mod_version = 1.18.2-1.1.3
maven_group = tools.redstone
archives_base_name = redstonetools

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import net.minecraft.server.command.ServerCommandSource;
import tools.redstone.redstonetools.features.Feature;
import tools.redstone.redstonetools.features.feedback.Feedback;
import tools.redstone.redstonetools.mixin.MinecraftClientAccessor;
import tools.redstone.redstonetools.mixin.accessors.MinecraftClientAccessor;
import tools.redstone.redstonetools.utils.BlockInfo;
import tools.redstone.redstonetools.utils.BlockStateNbtUtil;

Expand Down
55 changes: 0 additions & 55 deletions src/main/java/tools/redstone/redstonetools/gui/PopupScreen.java

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.accessors;

import net.minecraft.block.entity.BlockEntity;
import net.minecraft.client.MinecraftClient;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.features;

import net.minecraft.client.RunArgs;
import tools.redstone.redstonetools.RedstoneToolsClient;
import tools.redstone.redstonetools.features.toggleable.AirPlaceFeature;
import net.minecraft.client.MinecraftClient;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.HitResult;
Expand All @@ -14,10 +11,11 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
import tools.redstone.redstonetools.macros.MacroManager;
import tools.redstone.redstonetools.RedstoneToolsClient;
import tools.redstone.redstonetools.features.toggleable.AirPlaceFeature;

@Mixin(MinecraftClient.class)
public abstract class MinecraftClientMixin {
public class AirplaceMixin {
private final AirPlaceFeature airPlaceFeature = RedstoneToolsClient.INJECTOR.getInstance(AirPlaceFeature.class);

@Shadow
Expand Down Expand Up @@ -46,10 +44,4 @@ public void doItemUse(CallbackInfo callbackInfo) {

crosshairTarget = new BlockHitResult(hitResult.getPos(), Direction.UP, new BlockPos(hitResult.getPos()), false);
}

@Inject(method = "<init>", at = @At("TAIL"))
public void registerMacros(RunArgs args, CallbackInfo ci){
RedstoneToolsClient.INJECTOR.getInstance(MacroManager.class);// should register macro keybinds
}

}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.features;

import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
Expand All @@ -23,7 +23,7 @@
import tools.redstone.redstonetools.utils.ColoredBlock;

@Mixin(Block.class)
public abstract class BlockMixin {
public abstract class AutoDustMixin {
private AutoDustFeature autoDustFeature;

private AutoDustFeature getAutoDustFeature() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.features;

import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
Expand All @@ -13,7 +13,7 @@


@Mixin(BlockItem.class)
public abstract class BlockItemMixin {
public abstract class CopyStateMixin {

@Shadow protected abstract boolean canPlace(ItemPlacementContext context, BlockState state);
@Shadow public abstract Block getBlock();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.gamerules;

import net.minecraft.item.ItemStack;
import net.minecraft.util.ItemScatterer;
Expand All @@ -11,7 +11,7 @@
import static tools.redstone.redstonetools.RedstoneToolsGameRules.DO_CONTAINER_DROPS;

@Mixin(ItemScatterer.class)
public class ItemScattererMixin {
public class DoContainerDropsMixin {
@Inject(method = "spawn(Lnet/minecraft/world/World;DDDLnet/minecraft/item/ItemStack;)V", at = @At("HEAD"), cancellable = true)
private static void spawn(World world, double x, double y, double z, ItemStack stack, CallbackInfo ci) {
if (!world.getGameRules().getBoolean(DO_CONTAINER_DROPS)) ci.cancel();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.macros;

import tools.redstone.redstonetools.macros.gui.screen.MacroSelectScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.option.ControlsOptionsScreen;
import net.minecraft.client.gui.screen.option.GameOptionsScreen;
Expand All @@ -11,19 +10,18 @@
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import tools.redstone.redstonetools.macros.gui.screen.MacroSelectScreen;

@Mixin(ControlsOptionsScreen.class)
public class OptionsScreenMixin extends GameOptionsScreen {
public OptionsScreenMixin(Screen parent, GameOptions gameOptions, Text title) {
public class AddMacroButtonMixin extends GameOptionsScreen {
public AddMacroButtonMixin(Screen parent, GameOptions gameOptions, Text title) {
super(parent, gameOptions, title);
}


@Inject(method = "init", at = @At("TAIL"))
public void addMacroButton(CallbackInfo ci) {
public void init(CallbackInfo ci) {
this.addDrawableChild(new ButtonWidget(this.width / 2 + 5, this.height / 6 + 36, 150, 20, Text.of("Macros..."), (button) -> {
this.client.setScreen(new MacroSelectScreen(this,super.gameOptions,Text.of("Macros")));
}));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package tools.redstone.redstonetools.mixin.macros;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.RunArgs;
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.CallbackInfo;
import tools.redstone.redstonetools.RedstoneToolsClient;
import tools.redstone.redstonetools.macros.MacroManager;

@Mixin(MinecraftClient.class)
public class InitializeMacroManagerMixin {
@Inject(method = "<init>", at = @At("TAIL"))
public void registerMacros(RunArgs args, CallbackInfo ci){
RedstoneToolsClient.INJECTOR.getInstance(MacroManager.class);// should register macro keybinds
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.macros;

import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.util.InputUtil;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.macros.autocomplete;

import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.client.network.ClientPlayerEntity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.macros.autocomplete;

import tools.redstone.redstonetools.macros.WorldlessCommandHelper;
import com.mojang.brigadier.CommandDispatcher;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.macros.autocomplete;

import com.mojang.brigadier.suggestion.Suggestions;
import net.minecraft.client.MinecraftClient;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.telemetry;

import tools.redstone.redstonetools.telemetry.TelemetryClient;
import net.minecraft.client.MinecraftClient;
Expand All @@ -10,7 +10,7 @@
import static tools.redstone.redstonetools.RedstoneToolsClient.INJECTOR;

@Mixin(MinecraftClient.class)
public class TelemetryInitializeMixin {
public class InitializeTelemetryClientMixin {
@Inject(method = "<init>", at = @At("TAIL"))
public void init(CallbackInfo ci) {
INJECTOR.getInstance(TelemetryClient.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.telemetry;

import com.mojang.brigadier.exceptions.CommandSyntaxException;
import net.minecraft.client.MinecraftClient;
Expand All @@ -12,7 +12,7 @@
import java.util.Objects;

@Mixin(net.minecraft.server.command.CommandManager.class)
public class CommandTelemetryMixin {
public class SendCommandMixin {
@Inject(method = "execute", at = @At("HEAD"))
private void execute(net.minecraft.server.command.ServerCommandSource source, String command, CallbackInfoReturnable<Integer> cir) {
ServerPlayerEntity player;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tools.redstone.redstonetools.mixin;
package tools.redstone.redstonetools.mixin.telemetry;

import tools.redstone.redstonetools.utils.TelemetryUtils;
import net.minecraft.client.MinecraftClient;
Expand All @@ -9,7 +9,7 @@
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(MinecraftClient.class)
public class CrashTelemetryMixin {
public class SendCrashReportMixin {
@Inject(method = "printCrashReport", at = @At("TAIL"))
private static void printCrashReport(CrashReport report, CallbackInfo ci) {
TelemetryUtils.sendCrash(report);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package tools.redstone.redstonetools.mixin.telemetry;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ConfirmScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.TitleScreen;
import net.minecraft.text.Text;
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.CallbackInfo;
import tools.redstone.redstonetools.telemetry.TelemetryManager;

import static tools.redstone.redstonetools.RedstoneToolsClient.INJECTOR;

@Mixin(TitleScreen.class)
public class ShowTelemetryPopupMixin extends Screen {
private static final String TELEMETRY_PROMPT = "Redstone Tools includes an optional telemetry feature that collects anonymous usage data to help us improve the mod. By enabling telemetry, you can help us better understand how the mod is being used and identify areas for improvement.\n\n\n\nWould you like to help us improve Redstone Tools by enabling anonymous usage data?"; // TODO: Add "You can turn this off at any time in the settings menu." once you can actually turn it off in the settings menu

public ShowTelemetryPopupMixin(Text title) {
super(title);
}

@Inject(method = "init", at = @At("TAIL"))
public void init(CallbackInfo ci) {
var manager = INJECTOR.getInstance(TelemetryManager.class);

if (!manager.showTelemetryPrompt) {
return;
}

var parentScreen = MinecraftClient.getInstance().currentScreen;
var popup = new ConfirmScreen(accepted -> {
manager.showTelemetryPrompt = false;
manager.telemetryEnabled = accepted;

manager.saveChanges();

MinecraftClient.getInstance().setScreen(parentScreen);
}, Text.of("Telemetry"), Text.of(TELEMETRY_PROMPT));

MinecraftClient.getInstance().setScreen(popup);
}
}
Loading

0 comments on commit 9e74d05

Please sign in to comment.