events refactor + mixin testing
This commit is contained in:
parent
e76c3dfccf
commit
f38629a294
13 changed files with 300 additions and 139 deletions
|
@ -10,8 +10,8 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordBlockBreakEvent;
|
||||
import themixray.repeating.mod.event.RecordBlockInteractEvent;
|
||||
import themixray.repeating.mod.event.events.BlockBreakEvent;
|
||||
import themixray.repeating.mod.event.events.BlockInteractEvent;
|
||||
import themixray.repeating.mod.TickTask;
|
||||
|
||||
@Mixin(ClientPlayerEntity.class)
|
||||
|
@ -21,13 +21,13 @@ public abstract class MovementMixin {
|
|||
private void init(CallbackInfo ci) {
|
||||
PlayerBlockBreakEvents.AFTER.register((world, player, pos, blockState, blockEntity) -> {
|
||||
if (Main.me.is_recording)
|
||||
Main.me.recordTick(new RecordBlockBreakEvent(pos));
|
||||
Main.me.recordTick(new BlockBreakEvent(pos));
|
||||
});
|
||||
|
||||
UseBlockCallback.EVENT.register((player, world, hand, hitResult) -> {
|
||||
if (hitResult.getType().equals(HitResult.Type.BLOCK))
|
||||
if (Main.me.is_recording)
|
||||
Main.me.recordTick(new RecordBlockInteractEvent(hand,hitResult));
|
||||
Main.me.recordTick(new BlockInteractEvent(hand,hitResult));
|
||||
return ActionResult.PASS;
|
||||
});
|
||||
}
|
||||
|
|
23
src/main/java/themixray/repeating/mod/mixin/PlayerMixin.java
Normal file
23
src/main/java/themixray/repeating/mod/mixin/PlayerMixin.java
Normal file
|
@ -0,0 +1,23 @@
|
|||
package themixray.repeating.mod.mixin;
|
||||
|
||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientEntityEvents;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.network.ClientConnection;
|
||||
import net.minecraft.text.Text;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.Main;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@Mixin(ClientConnection.class)
|
||||
public abstract class PlayerMixin {
|
||||
@Inject(at = @At(value = "HEAD"), method = "disconnect")
|
||||
private void disconnect(Text disconnectReason, CallbackInfo ci) {
|
||||
System.out.println("on client close");
|
||||
}
|
||||
}
|
64
src/main/java/themixray/repeating/mod/mixin/ScreenMixin.java
Normal file
64
src/main/java/themixray/repeating/mod/mixin/ScreenMixin.java
Normal file
|
@ -0,0 +1,64 @@
|
|||
package themixray.repeating.mod.mixin;
|
||||
|
||||
import net.minecraft.client.gui.AbstractParentElement;
|
||||
import net.minecraft.client.gui.Drawable;
|
||||
import net.minecraft.client.gui.Element;
|
||||
import net.minecraft.client.gui.ParentElement;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Overwrite;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
import themixray.repeating.mod.TickTask;
|
||||
|
||||
@Mixin(Screen.class)
|
||||
public abstract class ScreenMixin extends AbstractParentElement implements Drawable {
|
||||
@Inject(at = @At(value = "HEAD"), method = "close")
|
||||
private void close(CallbackInfo ci) {
|
||||
System.out.println("on screen close");
|
||||
}
|
||||
|
||||
@Inject(at = @At(value = "HEAD"), method = "keyPressed")
|
||||
private void keyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable<Boolean> cir) {
|
||||
System.out.println("on screen keyPressed");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean charTyped(char chr, int modifiers) {
|
||||
System.out.println("on screen charTyped");
|
||||
return super.charTyped(chr, modifiers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyReleased(int keyCode, int scanCode, int modifiers) {
|
||||
System.out.println("on screen keyReleased");
|
||||
return super.keyReleased(keyCode, scanCode, modifiers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseClicked(double mouseX, double mouseY, int button) {
|
||||
System.out.println("on screen mouseClicked");
|
||||
return super.mouseClicked(mouseX, mouseY, button);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) {
|
||||
System.out.println("on screen mouseDragged");
|
||||
return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseReleased(double mouseX, double mouseY, int button) {
|
||||
System.out.println("on screen mouseReleased");
|
||||
return super.mouseReleased(mouseX, mouseY, button);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseScrolled(double mouseX, double mouseY, double amount) {
|
||||
System.out.println("on screen mouseScrolled");
|
||||
return super.mouseScrolled(mouseX, mouseY, amount);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue