feat: 调整了bot的实现方式

This commit is contained in:
Disy authored and zly2006 committed 2024-07-11 12:14:02 +08:00
1 parent 07596c15c7
commit 2063933634
10 files changed
+90 -86

No files matched your search

@@ -1,38 +0,0 @@
package com.github.zly2006.carpetslsaddition.mixin.carpet;
import carpet.patches.EntityPlayerMPFake;
import com.github.zly2006.carpetslsaddition.SLSCarpetSettings;
import com.github.zly2006.carpetslsaddition.command.BotCommand;
import com.mojang.authlib.GameProfile;
import net.minecraft.util.UserCache;
import net.minecraft.util.Uuids;
import net.minecraft.util.math.Vec3d;
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.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@Mixin(value = EntityPlayerMPFake.class)
public class MixinFakePlayer {
@Redirect(method = "createFake", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/UserCache;findByName(Ljava/lang/String;)Ljava/util/Optional;"))
private static Optional<GameProfile> onCreate(UserCache instance, String name) {
if (SLSCarpetSettings.offlineFakePlayers) {
UUID uuid = Uuids.getOfflinePlayerUuid(name);
return Optional.of(new GameProfile(uuid, name));
}
return instance.findByName(name);
}
@Inject(method = "lambda$createFake$1", at = @At("TAIL"))
private static void onAcceptFakePlayer(EntityPlayerMPFake instance, Vec3d pos, double yaw, double pitch, CallbackInfo ci) {
try {
BotCommand.playerQueue.offer(instance, 500, TimeUnit.MILLISECONDS);
}
catch (InterruptedException ignored) {}
}
}
@@ -1,12 +1,9 @@
package com.github.zly2006.carpetslsaddition.mixin.entity;
import com.github.zly2006.carpetslsaddition.util.access.PlayerAccess;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.stat.Stat;
import net.minecraft.text.Text;
@@ -17,8 +14,6 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import static com.github.zly2006.carpetslsaddition.ServerMain.*;
@Mixin(PlayerEntity.class)
public abstract class MixinPlayerEntity implements PlayerAccess {
@Shadow public abstract ItemStack getEquippedStack(EquipmentSlot slot);
@@ -31,7 +26,7 @@ public abstract class MixinPlayerEntity implements PlayerAccess {
private Text displayName = null;
@Override
public void setDisplayName(Text name) {
public void carpet_SLS_Addition$setDisplayName(Text name) {
this.displayName = name;
}