Skip to content

Commit

Permalink
feat(mod.mixin): impl ClientPermissionsChangedEvent
Browse files Browse the repository at this point in the history
  • Loading branch information
WakelessSloth56 committed Oct 27, 2022
1 parent a6332c7 commit 03ee734
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 1 deletion.
@@ -0,0 +1,19 @@
package org.auioc.mcmod.arnicalib.mod.client.event;

import org.auioc.mcmod.arnicalib.game.event.client.ClientPermissionsChangedEvent;
import net.minecraft.client.player.LocalPlayer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.IEventBus;

@OnlyIn(Dist.CLIENT)
public class AHClientEventFactory {

private static final IEventBus BUS = MinecraftForge.EVENT_BUS;

public static void onPermissionChanged(LocalPlayer player, int oldLevel, int newLevel) {
BUS.post(new ClientPermissionsChangedEvent(player, oldLevel, newLevel));
}

}
@@ -0,0 +1,27 @@
package org.auioc.mcmod.arnicalib.mod.mixin.client;

import org.auioc.mcmod.arnicalib.mod.client.event.AHClientEventFactory;
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 net.minecraft.client.player.LocalPlayer;

@Mixin(value = LocalPlayer.class)
public class MixinLocalPlayer {

@Shadow
private int permissionLevel;

@Inject(
method = "Lnet/minecraft/client/player/LocalPlayer;setPermissionLevel(I)V",
at = @At(value = "HEAD"),
require = 1,
allow = 1
)
private void setPermissionLevel(int p_108649_, CallbackInfo ci) {
AHClientEventFactory.onPermissionChanged(((LocalPlayer) (Object) this), this.permissionLevel, p_108649_);
}

}
2 changes: 1 addition & 1 deletion src/main/resources/arnicalib.mixin.json
Expand Up @@ -11,7 +11,7 @@
"server.MixinServerLifecycleHooks",
"server.MixinLootContext"
],
"client": [],
"client": ["client.MixinLocalPlayer"],
"server": [],
"injectors": {
"defaultRequire": 1
Expand Down

0 comments on commit 03ee734

Please sign in to comment.