ServerPackCommand.java
net.minecraft.server.commands.ServerPackCommand
信息
- 全限定名:net.minecraft.server.commands.ServerPackCommand
- 类型:public class
- 包:net.minecraft.server.commands
- 源码路径:src/main/java/net/minecraft/server/commands/ServerPackCommand.java
- 起始行号:L15
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) @ L16
- 方法名:register
- 源码定位:L16
- 返回类型:void
- 修饰符:public static
参数:
- dispatcher: CommandDispatcher
说明:
TODO
private static void sendToAllConnections(CommandSourceStack source, Packet<?> packet) @ L56
- 方法名:sendToAllConnections
- 源码定位:L56
- 返回类型:void
- 修饰符:private static
参数:
- source: CommandSourceStack
- packet: Packet<?>
说明:
TODO
private static int pushPack(CommandSourceStack source, String url, Optional<UUID> maybeId, Optional<String> maybeHash) @ L60
- 方法名:pushPack
- 源码定位:L60
- 返回类型:int
- 修饰符:private static
参数:
- source: CommandSourceStack
- url: String
- maybeId: Optional
- maybeHash: Optional
说明:
TODO
private static int popPack(CommandSourceStack source, UUID uuid) @ L68
- 方法名:popPack
- 源码定位:L68
- 返回类型:int
- 修饰符:private static
参数:
- source: CommandSourceStack
- uuid: UUID
说明:
TODO
代码
public class ServerPackCommand {
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
dispatcher.register(
Commands.literal("serverpack")
.requires(Commands.hasPermission(Commands.LEVEL_GAMEMASTERS))
.then(
Commands.literal("push")
.then(
Commands.argument("url", StringArgumentType.string())
.then(
Commands.argument("uuid", UuidArgument.uuid())
.then(
Commands.argument("hash", StringArgumentType.word())
.executes(
c -> pushPack(
c.getSource(),
StringArgumentType.getString(c, "url"),
Optional.of(UuidArgument.getUuid(c, "uuid")),
Optional.of(StringArgumentType.getString(c, "hash"))
)
)
)
.executes(
c -> pushPack(
c.getSource(),
StringArgumentType.getString(c, "url"),
Optional.of(UuidArgument.getUuid(c, "uuid")),
Optional.empty()
)
)
)
.executes(c -> pushPack(c.getSource(), StringArgumentType.getString(c, "url"), Optional.empty(), Optional.empty()))
)
)
.then(
Commands.literal("pop")
.then(Commands.argument("uuid", UuidArgument.uuid()).executes(c -> popPack(c.getSource(), UuidArgument.getUuid(c, "uuid"))))
)
);
}
private static void sendToAllConnections(CommandSourceStack source, Packet<?> packet) {
source.getServer().getConnection().getConnections().forEach(connection -> connection.send(packet));
}
private static int pushPack(CommandSourceStack source, String url, Optional<UUID> maybeId, Optional<String> maybeHash) {
UUID id = maybeId.orElseGet(() -> UUID.nameUUIDFromBytes(url.getBytes(StandardCharsets.UTF_8)));
String hash = maybeHash.orElse("");
ClientboundResourcePackPushPacket packet = new ClientboundResourcePackPushPacket(id, url, hash, false, null);
sendToAllConnections(source, packet);
return 0;
}
private static int popPack(CommandSourceStack source, UUID uuid) {
ClientboundResourcePackPopPacket packet = new ClientboundResourcePackPopPacket(Optional.of(uuid));
sendToAllConnections(source, packet);
return 0;
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Commands.argument(), Commands.hasPermission(), Commands.literal()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
UuidArgument.getUuid(), UuidArgument.uuid()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
ClientboundResourcePackPopPacket
- 引用位置:
构造调用 - 关联成员:
ClientboundResourcePackPopPacket()
- 引用位置:
-
ClientboundResourcePackPushPacket
- 引用位置:
构造调用 - 关联成员:
ClientboundResourcePackPushPacket()
- 引用位置: