允许ammo指令查询自己的弹药数量
This commit is contained in:
parent
b8a2e6a9e7
commit
3480cdc2d8
3 changed files with 17 additions and 5 deletions
|
@ -12,15 +12,25 @@ import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.server.command.EnumArgument;
|
import net.minecraftforge.server.command.EnumArgument;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
@Mod.EventBusSubscriber
|
@Mod.EventBusSubscriber
|
||||||
public class AmmoCommand {
|
public class AmmoCommand {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void registerCommand(RegisterCommandsEvent event) {
|
public static void registerCommand(RegisterCommandsEvent event) {
|
||||||
// mojang你看看你写的是个牛魔Builder😅
|
// mojang你看看你写的是个牛魔Builder😅
|
||||||
event.getDispatcher().register(Commands.literal("superbwarfare:ammo").requires(s -> s.hasPermission(4))
|
event.getDispatcher().register(Commands.literal("ammo").requires(s -> s.hasPermission(0))
|
||||||
.then(Commands.literal("get").then(Commands.argument("player", EntityArgument.player()).then(Commands.argument("type", EnumArgument.enumArgument(GunInfo.Type.class)).executes(context -> {
|
.then(Commands.literal("get").then(Commands.argument("player", EntityArgument.player()).then(Commands.argument("type", EnumArgument.enumArgument(GunInfo.Type.class)).executes(context -> {
|
||||||
var player = EntityArgument.getPlayer(context, "player");
|
var player = EntityArgument.getPlayer(context, "player");
|
||||||
|
|
||||||
|
// 权限不足时,只允许玩家查询自己的弹药数量
|
||||||
|
if (context.getSource().isPlayer() && !context.getSource().hasPermission(2)) {
|
||||||
|
if (!Objects.requireNonNull(context.getSource().getPlayer()).getUUID().equals(player.getUUID())) {
|
||||||
|
context.getSource().sendFailure(Component.translatable("commands.ammo.nopermission"));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var type = context.getArgument("type", GunInfo.Type.class);
|
var type = context.getArgument("type", GunInfo.Type.class);
|
||||||
|
|
||||||
var value = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).map(c ->
|
var value = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).map(c ->
|
||||||
|
@ -34,7 +44,7 @@ public class AmmoCommand {
|
||||||
context.getSource().sendSuccess(() -> Component.translatable("commands.ammo.get", Component.translatable(type.translatableKey), value), true);
|
context.getSource().sendSuccess(() -> Component.translatable("commands.ammo.get", Component.translatable(type.translatableKey), value), true);
|
||||||
return 0;
|
return 0;
|
||||||
}))))
|
}))))
|
||||||
.then(Commands.literal("set").then(Commands.argument("players", EntityArgument.players()).then(Commands.argument("type", EnumArgument.enumArgument(GunInfo.Type.class)).then(Commands.argument("value", IntegerArgumentType.integer(0)).executes(context -> {
|
.then(Commands.literal("set").requires(s -> s.hasPermission(2)).then(Commands.argument("players", EntityArgument.players()).then(Commands.argument("type", EnumArgument.enumArgument(GunInfo.Type.class)).then(Commands.argument("value", IntegerArgumentType.integer(0)).executes(context -> {
|
||||||
var players = EntityArgument.getPlayers(context, "players");
|
var players = EntityArgument.getPlayers(context, "players");
|
||||||
var type = context.getArgument("type", GunInfo.Type.class);
|
var type = context.getArgument("type", GunInfo.Type.class);
|
||||||
var value = IntegerArgumentType.getInteger(context, "value");
|
var value = IntegerArgumentType.getInteger(context, "value");
|
||||||
|
@ -54,7 +64,7 @@ public class AmmoCommand {
|
||||||
context.getSource().sendSuccess(() -> Component.translatable("commands.ammo.set", Component.translatable(type.translatableKey), value, players.size()), true);
|
context.getSource().sendSuccess(() -> Component.translatable("commands.ammo.set", Component.translatable(type.translatableKey), value, players.size()), true);
|
||||||
return 0;
|
return 0;
|
||||||
})))))
|
})))))
|
||||||
.then(Commands.literal("add").then(Commands.argument("players", EntityArgument.players()).then(Commands.argument("type", EnumArgument.enumArgument(GunInfo.Type.class)).then(Commands.argument("value", IntegerArgumentType.integer(0)).executes(context -> {
|
.then(Commands.literal("add").requires(s -> s.hasPermission(2)).then(Commands.argument("players", EntityArgument.players()).then(Commands.argument("type", EnumArgument.enumArgument(GunInfo.Type.class)).then(Commands.argument("value", IntegerArgumentType.integer(0)).executes(context -> {
|
||||||
var players = EntityArgument.getPlayers(context, "players");
|
var players = EntityArgument.getPlayers(context, "players");
|
||||||
var type = context.getArgument("type", GunInfo.Type.class);
|
var type = context.getArgument("type", GunInfo.Type.class);
|
||||||
var value = IntegerArgumentType.getInteger(context, "value");
|
var value = IntegerArgumentType.getInteger(context, "value");
|
||||||
|
|
|
@ -417,5 +417,6 @@
|
||||||
"des.superbwarfare.target.pos": "Target Position:",
|
"des.superbwarfare.target.pos": "Target Position:",
|
||||||
"des.superbwarfare.target.warn": "迫击炮无法瞄准该位置",
|
"des.superbwarfare.target.warn": "迫击炮无法瞄准该位置",
|
||||||
"des.superbwarfare.tips.edit_part": "Press ",
|
"des.superbwarfare.tips.edit_part": "Press ",
|
||||||
"des.superbwarfare.tips.edit_part2": " key to edit this weapon."
|
"des.superbwarfare.tips.edit_part2": " key to edit this weapon.",
|
||||||
|
"commands.ammo.nopermission": "Permission denied"
|
||||||
}
|
}
|
|
@ -417,5 +417,6 @@
|
||||||
"des.superbwarfare.target.pos": "目标坐标:",
|
"des.superbwarfare.target.pos": "目标坐标:",
|
||||||
"des.superbwarfare.target.warn": "迫击炮无法瞄准该位置",
|
"des.superbwarfare.target.warn": "迫击炮无法瞄准该位置",
|
||||||
"des.superbwarfare.tips.edit_part": "按下",
|
"des.superbwarfare.tips.edit_part": "按下",
|
||||||
"des.superbwarfare.tips.edit_part2": "键进行改装"
|
"des.superbwarfare.tips.edit_part2": "键进行改装",
|
||||||
|
"commands.ammo.nopermission": "权限不足"
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue