feat: 修改指令的判断逻辑

This commit is contained in:
Disy authored and zly2006 committed 2024-07-11 12:14:01 +08:00
1 parent 2967c021e5
commit ba034dd12f
1 file changed
+20 -29
@@ -110,43 +110,34 @@ public class ServerMain implements ModInitializer, CarpetExtension {
public void registerCommands(CommandDispatcher<ServerCommandSource> dispatcher, CommandRegistryAccess commandBuildContext) { public void registerCommands(CommandDispatcher<ServerCommandSource> dispatcher, CommandRegistryAccess commandBuildContext) {
dispatcher.register(CommandManager.literal("hat") dispatcher.register(CommandManager.literal("hat")
.requires(ServerCommandSource::isExecutedByPlayer) .requires(ServerCommandSource::isExecutedByPlayer)
.requires((commandSource) -> SLSCarpetSettings.canUseHatCommand)
.executes(context -> { .executes(context -> {
if(SLSCarpetSettings.canUseHatCommand){ ServerPlayerEntity player = context.getSource().getPlayer();
ServerPlayerEntity player = context.getSource().getPlayer(); assert player != null;
assert player != null; ItemStack stack = player.getMainHandStack();
ItemStack stack = player.getMainHandStack(); ItemStack head = player.getEquippedStack(EquipmentSlot.HEAD);
ItemStack head = player.getEquippedStack(EquipmentSlot.HEAD); player.equipStack(EquipmentSlot.HEAD, stack);
player.equipStack(EquipmentSlot.HEAD, stack); player.getInventory().setStack(player.getInventory().selectedSlot, head);
player.getInventory().setStack(player.getInventory().selectedSlot, head); player.currentScreenHandler.syncState();
player.currentScreenHandler.syncState();
return 1; return 1;
}
else {
context.getSource().sendMessage(Text.literal("服务器尚未启用本指令!").setStyle(Style.EMPTY.withColor(Formatting.RED)));
return 0;
}
})); }));
dispatcher.register(CommandManager.literal("sit") dispatcher.register(CommandManager.literal("sit")
.requires(ServerCommandSource::isExecutedByPlayer) .requires(ServerCommandSource::isExecutedByPlayer)
.requires((commandSource) -> SLSCarpetSettings.canUseSitCommand)
.executes(context -> { .executes(context -> {
if(SLSCarpetSettings.canUseSitCommand){ ServerPlayerEntity player = context.getSource().getPlayer();
ServerPlayerEntity player = context.getSource().getPlayer(); assert player != null;
assert player != null; World world = player.getWorld();
World world = player.getWorld();
ArmorStandEntity armorStandEntity = new ArmorStandEntity(world, player.getX(), player.getY() - 0.16, player.getZ()); ArmorStandEntity armorStandEntity = new ArmorStandEntity(world, player.getX(), player.getY() - 0.16, player.getZ());
((SitEntity) armorStandEntity).setSitEntity(true); ((SitEntity) armorStandEntity).setSitEntity(true);
world.spawnEntity(armorStandEntity); world.spawnEntity(armorStandEntity);
player.setSneaking(false); player.setSneaking(false);
player.startRiding(armorStandEntity); player.startRiding(armorStandEntity);
return 1; return 1;
}
else {
context.getSource().sendMessage(Text.literal("服务器尚未启用本指令!").setStyle(Style.EMPTY.withColor(Formatting.RED)));
return 0;
}
}) })
); );
} }