PointsPlugin class
Пакет: com.hypixel.hytale.builtin.points
Файл: com/hypixel/hytale/builtin/points/PointsPlugin.java
extends: JavaPlugin
Поля (14)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
instance |
|
ComponentRegistry |
var1 |
|
BuilderToolsPlugin |
var1 |
|
PointManager |
var2 |
|
PlayerRef |
var2 |
|
PlayerRef |
var2 |
|
Store |
var2 |
|
World |
var2 |
|
String |
var2 |
|
PointManager |
var3 |
|
World |
var3 |
|
PointManager |
var3 |
|
PointManager |
var4 |
|
PlayerRef |
var5 |
Методы (13)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
void |
clearViewerStatevoid clearViewerState(@Nonnull PointManager var0, @Nonnull UUID var1) |
|
|
if if(var2 != null) |
|
|
if if(var5 != null) |
|
|
if if(var2 != null) |
|
|
if if(var3 != null) |
|
|
if if(var3 != null) |
|
|
if if(var4 != null) |
|
|
if if(var3 != null) |
private |
void |
initManagerForWorldvoid initManagerForWorld(@Nonnull World var1) |
private |
void |
onPlayerDisconnectvoid onPlayerDisconnect(@Nonnull PlayerDisconnectEvent var1) |
private |
void |
onPlayerRemovedFromWorldvoid onPlayerRemovedFromWorld(@Nonnull RemovedPlayerFromWorldEvent var1) |
private |
void |
onWorldRemovedvoid onWorldRemoved(@Nonnull RemoveWorldEvent var1) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.points;
class="kw">import com.hypixel.hytale.builtin.buildertools.BuilderToolsPlugin;
class="kw">import com.hypixel.hytale.builtin.points.command.PointCommand;
class="kw">import com.hypixel.hytale.builtin.points.component.Point;
class="kw">import com.hypixel.hytale.builtin.points.manager.PointEntry;
class="kw">import com.hypixel.hytale.builtin.points.manager.PointManager;
class="kw">import com.hypixel.hytale.builtin.points.prefab.PointPasteHandler;
class="kw">import com.hypixel.hytale.builtin.points.prefab.PointPrefabContributor;
class="kw">import com.hypixel.hytale.component.ComponentRegistry;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.protocol.packets.player.UpdatePointDisplay;
class="kw">import com.hypixel.hytale.server.core.event.events.player.PlayerDisconnectEvent;
class="kw">import com.hypixel.hytale.server.core.event.events.player.RemovedPlayerFromWorldEvent;
class="kw">import com.hypixel.hytale.server.core.io.ServerManager;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPlugin;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.events.RemoveWorldEvent;
class="kw">import com.hypixel.hytale.server.core.universe.world.events.StartWorldEvent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Locale;
class="kw">import java.util.UUID;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class PointsPlugin class="kw">extends JavaPlugin {
@Nonnull
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
class="kw">private class="kw">static PointsPlugin instance;
class="kw">private ResourceType<EntityStore, PointManager> managerResourceType;
class="kw">private ComponentType<EntityStore, Point> pointComponentType;
@Nonnull
class="kw">public class="kw">static PointsPlugin get() {
class="kw">return instance;
}
class="kw">public PointsPlugin(@Nonnull JavaPluginInit var1) {
super(var1);
}
@Nonnull
class="kw">public ResourceType<EntityStore, PointManager> getManagerResourceType() {
class="kw">return this.managerResourceType;
}
@Nonnull
class="kw">public ComponentType<EntityStore, Point> getPointComponentType() {
class="kw">return this.pointComponentType;
}
@Override
class="kw">protected void setup() {
instance = this;
ComponentRegistry var1 = EntityStore.REGISTRY;
this.managerResourceType = var1.registerResource(PointManager.class, "PointData", PointManager.CODEC);
this.pointComponentType = var1.registerComponent(Point.class, "Point", Point.CODEC);
var1.registerSystem(new PointPasteHandler(this.managerResourceType, this.pointComponentType));
this.getCommandRegistry().registerCommand(new PointCommand());
ServerManager.get().registerSubPacketHandlers(PointToolPacketHandler::new);
this.getEventRegistry().registerGlobal(StartWorldEvent.class, var1x -> this.initManagerForWorld(var1x.getWorld()));
this.getEventRegistry().registerGlobal(RemoveWorldEvent.class, this::onWorldRemoved);
this.getEventRegistry().registerGlobal(RemovedPlayerFromWorldEvent.class, this::onPlayerRemovedFromWorld);
this.getEventRegistry().registerGlobal(PlayerDisconnectEvent.class, this::onPlayerDisconnect);
}
@Override
class="kw">protected void start() {
BuilderToolsPlugin var1 = BuilderToolsPlugin.get();
var1.registerPrefabSaveContributor(new PointPrefabContributor());
var1.registerClipboardContributor(new PointPrefabContributor());
}
@Override
class="kw">protected void shutdown() {
}
class="kw">private void onWorldRemoved(@Nonnull RemoveWorldEvent var1) {
PointManager var2 = this.getManager(var1.getWorld());
if (var2 != null) {
for (UUID var4 : var2.getViewerUuids()) {
PlayerRef var5 = Universe.get().getPlayer(var4);
if (var5 != null) {
var5.getPacketHandler().write(new UpdatePointDisplay());
}
}
var2.clearViewers();
}
}
class="kw">private void onPlayerRemovedFromWorld(@Nonnull RemovedPlayerFromWorldEvent var1) {
PlayerRef var2 = var1.getHolder().getComponent(PlayerRef.getComponentType());
if (var2 != null) {
PointManager var3 = this.getManager(var1.getWorld());
if (var3 != null) {
clearViewerState(var3, var2.getUuid());
}
}
}
class="kw">private void onPlayerDisconnect(@Nonnull PlayerDisconnectEvent var1) {
PlayerRef var2 = var1.getPlayerRef();
World var3 = var2.getReference() != null ? var2.getReference().getStore().getExternalData().getWorld() : null;
if (var3 != null) {
PointManager var4 = this.getManager(var3);
if (var4 != null) {
clearViewerState(var4, var2.getUuid());
}
}
}
class="kw">private class="kw">static void clearViewerState(@Nonnull PointManager var0, @Nonnull UUID var1) {
for (PointManager.ViewSource var5 : PointManager.ViewSource.values()) {
var0.removeViewer(var1, var5);
}
var0.setPlayerSelection(var1, null);
}
@Nullable
class="kw">private PointManager getManager(@Nonnull World var1) {
Store var2 = var1.getEntityStore().getStore();
class="kw">return var2 == null ? null : var2.getResource(this.managerResourceType);
}
@Nullable
class="kw">public World getWorldByName(@Nonnull String var1) {
for (World var3 : Universe.get().getWorlds().values()) {
if (var3.getName().equalsIgnoreCase(var1)) {
class="kw">return var3;
}
}
class="kw">return null;
}
@Nullable
class="kw">public PointManager getManagerForWorld(@Nonnull String var1) {
World var2 = this.getWorldByName(var1);
class="kw">return var2 != null ? this.getManager(var2) : null;
}
class="kw">private void initManagerForWorld(@Nonnull World var1) {
String var2 = var1.getName().toLowerCase(Locale.ROOT);
PointManager var3 = this.getManager(var1);
if (var3 != null) {
var3.setWorld(var1);
for (PointEntry var5 : var3.getPointsMap().values()) {
var5.setWorldName(var2);
}
LOGGER.at(Level.INFO).log("Loaded %d points for world '%s'", var3.getPointsMap().size(), var2);
}
}
}