PlayerSocialManager.java
net.minecraft.client.gui.screens.social.PlayerSocialManager
信息
- 全限定名:net.minecraft.client.gui.screens.social.PlayerSocialManager
- 类型:public class
- 包:net.minecraft.client.gui.screens.social
- 源码路径:src/main/java/net/minecraft/client/gui/screens/social/PlayerSocialManager.java
- 起始行号:L18
- 职责:
TODO
字段/常量
-
minecraft- 类型:
Minecraft - 修饰符:
private final - 源码定位:
L19 - 说明:
TODO
- 类型:
-
hiddenPlayers- 类型:
Set<UUID> - 修饰符:
private final - 源码定位:
L20 - 说明:
TODO
- 类型:
-
service- 类型:
UserApiService - 修饰符:
private final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
discoveredNamesToUUID- 类型:
Map<String,UUID> - 修饰符:
private final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
onlineMode- 类型:
boolean - 修饰符:
private - 源码定位:
L23 - 说明:
TODO
- 类型:
-
pendingBlockListRefresh- 类型:
CompletableFuture<?> - 修饰符:
private - 源码定位:
L24 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public PlayerSocialManager(Minecraft minecraft, UserApiService service) @ L26
- 构造器名:PlayerSocialManager
- 源码定位:L26
- 修饰符:public
参数:
- minecraft: Minecraft
- service: UserApiService
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void hidePlayer(UUID id) @ L31
- 方法名:hidePlayer
- 源码定位:L31
- 返回类型:void
- 修饰符:public
参数:
- id: UUID
说明:
TODO
public void showPlayer(UUID id) @ L35
- 方法名:showPlayer
- 源码定位:L35
- 返回类型:void
- 修饰符:public
参数:
- id: UUID
说明:
TODO
public boolean shouldHideMessageFrom(UUID id) @ L39
- 方法名:shouldHideMessageFrom
- 源码定位:L39
- 返回类型:boolean
- 修饰符:public
参数:
- id: UUID
说明:
TODO
public boolean isHidden(UUID id) @ L43
- 方法名:isHidden
- 源码定位:L43
- 返回类型:boolean
- 修饰符:public
参数:
- id: UUID
说明:
TODO
public void startOnlineMode() @ L47
- 方法名:startOnlineMode
- 源码定位:L47
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public void stopOnlineMode() @ L52
- 方法名:stopOnlineMode
- 源码定位:L52
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean isBlocked(UUID id) @ L56
- 方法名:isBlocked
- 源码定位:L56
- 返回类型:boolean
- 修饰符:public
参数:
- id: UUID
说明:
TODO
public Set<UUID> getHiddenPlayers() @ L65
- 方法名:getHiddenPlayers
- 源码定位:L65
- 返回类型:Set
- 修饰符:public
参数:
- 无
说明:
TODO
public UUID getDiscoveredUUID(String name) @ L69
- 方法名:getDiscoveredUUID
- 源码定位:L69
- 返回类型:UUID
- 修饰符:public
参数:
- name: String
说明:
TODO
public void addPlayer(PlayerInfo info) @ L73
- 方法名:addPlayer
- 源码定位:L73
- 返回类型:void
- 修饰符:public
参数:
- info: PlayerInfo
说明:
TODO
public void removePlayer(UUID id) @ L81
- 方法名:removePlayer
- 源码定位:L81
- 返回类型:void
- 修饰符:public
参数:
- id: UUID
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class PlayerSocialManager {
private final Minecraft minecraft;
private final Set<UUID> hiddenPlayers = Sets.newHashSet();
private final UserApiService service;
private final Map<String, UUID> discoveredNamesToUUID = Maps.newHashMap();
private boolean onlineMode;
private CompletableFuture<?> pendingBlockListRefresh = CompletableFuture.completedFuture(null);
public PlayerSocialManager(Minecraft minecraft, UserApiService service) {
this.minecraft = minecraft;
this.service = service;
}
public void hidePlayer(UUID id) {
this.hiddenPlayers.add(id);
}
public void showPlayer(UUID id) {
this.hiddenPlayers.remove(id);
}
public boolean shouldHideMessageFrom(UUID id) {
return this.isHidden(id) || this.isBlocked(id);
}
public boolean isHidden(UUID id) {
return this.hiddenPlayers.contains(id);
}
public void startOnlineMode() {
this.onlineMode = true;
this.pendingBlockListRefresh = this.pendingBlockListRefresh.thenRunAsync(this.service::refreshBlockList, Util.ioPool());
}
public void stopOnlineMode() {
this.onlineMode = false;
}
public boolean isBlocked(UUID id) {
if (!this.onlineMode) {
return false;
} else {
this.pendingBlockListRefresh.join();
return this.service.isBlockedPlayer(id);
}
}
public Set<UUID> getHiddenPlayers() {
return this.hiddenPlayers;
}
public UUID getDiscoveredUUID(String name) {
return this.discoveredNamesToUUID.getOrDefault(name, Util.NIL_UUID);
}
public void addPlayer(PlayerInfo info) {
GameProfile gameProfile = info.getProfile();
this.discoveredNamesToUUID.put(gameProfile.name(), gameProfile.id());
if (this.minecraft.screen instanceof SocialInteractionsScreen screen) {
screen.onAddPlayer(info);
}
}
public void removePlayer(UUID id) {
if (this.minecraft.screen instanceof SocialInteractionsScreen screen) {
screen.onRemovePlayer(id);
}
}
}引用的其他类
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Util.ioPool()
- 引用位置: