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);
      }
   }
}