44import cn .nukkit .command .*;
55import cn .nukkit .console .NukkitConsole ;
66import cn .nukkit .entity .Attribute ;
7- import cn .nukkit .entity .Entity ;
8- import cn .nukkit .entity .EntityHuman ;
97import cn .nukkit .entity .data .Skin ;
10- import cn .nukkit .entity .item .*;
11- import cn .nukkit .entity .mob .*;
12- import cn .nukkit .entity .passive .*;
13- import cn .nukkit .entity .projectile .*;
148import cn .nukkit .event .HandlerList ;
159import cn .nukkit .event .server .BatchPacketsEvent ;
1610import cn .nukkit .event .server .PlayerDataSerializeEvent ;
@@ -207,6 +201,7 @@ public class Server {
207201 private final StorageRegistry storageRegistry = StorageRegistry .get ();
208202 private final BlockRegistry blockRegistry = BlockRegistry .get ();
209203 private final ItemRegistry itemRegistry = ItemRegistry .get ();
204+ private final EntityRegistry entityRegistry = EntityRegistry .get ();
210205
211206 private final Map <InetSocketAddress , Player > players = new HashMap <>();
212207
@@ -560,6 +555,7 @@ public void boot() throws IOException {
560555 try {
561556 this .blockRegistry .close ();
562557 this .itemRegistry .close ();
558+ this .entityRegistry .close ();
563559 this .gameRuleRegistry .close ();
564560 this .storageRegistry .close ();
565561 } catch (RegistryException e ) {
@@ -889,7 +885,7 @@ public void onPlayerCompleteLoginSequence(Player player) {
889885
890886 public void onPlayerLogin (Player player ) {
891887 if (this .sendUsageTicker > 0 ) {
892- this .uniquePlayers .add (player .getUniqueId ());
888+ this .uniquePlayers .add (player .getServerId ());
893889 }
894890 }
895891
@@ -898,17 +894,17 @@ public void addPlayer(InetSocketAddress socketAddress, Player player) {
898894 }
899895
900896 public void addOnlinePlayer (Player player ) {
901- this .playerList .put (player .getUniqueId (), player );
902- this .updatePlayerListData (player .getUniqueId (), player .getId (), player .getDisplayName (), player .getSkin (), player .getLoginChainData ().getXUID ());
897+ this .playerList .put (player .getServerId (), player );
898+ this .updatePlayerListData (player .getServerId (), player .getUniqueId (), player .getDisplayName (), player .getSkin (), player .getLoginChainData ().getXUID ());
903899 }
904900
905901 public void removeOnlinePlayer (Player player ) {
906- if (this .playerList .containsKey (player .getUniqueId ())) {
907- this .playerList .remove (player .getUniqueId ());
902+ if (this .playerList .containsKey (player .getServerId ())) {
903+ this .playerList .remove (player .getServerId ());
908904
909905 PlayerListPacket pk = new PlayerListPacket ();
910906 pk .type = PlayerListPacket .TYPE_REMOVE ;
911- pk .entries = new PlayerListPacket .Entry []{new PlayerListPacket .Entry (player .getUniqueId ())};
907+ pk .entries = new PlayerListPacket .Entry []{new PlayerListPacket .Entry (player .getServerId ())};
912908
913909 Server .broadcastPacket (this .playerList .values (), pk );
914910 }
@@ -936,7 +932,7 @@ public void updatePlayerListData(UUID uuid, long entityId, String name, Skin ski
936932 public void updatePlayerListData (UUID uuid , long entityId , String name , Skin skin , String xboxUserId , Collection <Player > players ) {
937933 this .updatePlayerListData (uuid , entityId , name , skin , xboxUserId ,
938934 players .stream ()
939- .filter (p -> !p .getUniqueId ().equals (uuid ))
935+ .filter (p -> !p .getServerId ().equals (uuid ))
940936 .toArray (Player []::new ));
941937 }
942938
@@ -960,11 +956,11 @@ public void sendFullPlayerListData(Player player) {
960956 pk .type = PlayerListPacket .TYPE_ADD ;
961957 pk .entries = this .playerList .values ().stream ()
962958 .map (p -> new PlayerListPacket .Entry (
963- p . getUniqueId (),
964- p . getId (),
965- p .getDisplayName (),
966- p .getSkin (),
967- p .getLoginChainData ().getXUID ()))
959+ p . getServerId (),
960+ p . getUniqueId (),
961+ p .getDisplayName (),
962+ p .getSkin (),
963+ p .getLoginChainData ().getXUID ()))
968964 .toArray (PlayerListPacket .Entry []::new );
969965
970966 player .dataPacket (pk );
@@ -1993,7 +1989,6 @@ private void loadPacks() {
19931989 }
19941990
19951991 private void registerVanillaComponents () {
1996- this .registerEntities ();
19971992 this .registerBlockEntities ();
19981993
19991994 // Generators
@@ -2011,96 +2006,6 @@ private void registerVanillaComponents() {
20112006 this .defaultLevelData .getGameRules ().putAll (this .gameRuleRegistry .getDefaultRules ());
20122007 }
20132008
2014- private void registerEntities () {
2015- Entity .registerEntity ("Arrow" , EntityArrow .class );
2016- Entity .registerEntity ("EnderPearl" , EntityEnderPearl .class );
2017- Entity .registerEntity ("FallingSand" , EntityFallingBlock .class );
2018- Entity .registerEntity ("Firework" , EntityFirework .class );
2019- Entity .registerEntity ("Item" , EntityItem .class );
2020- Entity .registerEntity ("Painting" , EntityPainting .class );
2021- Entity .registerEntity ("PrimedTnt" , EntityPrimedTNT .class );
2022- Entity .registerEntity ("Snowball" , EntitySnowball .class );
2023- //Monsters
2024- Entity .registerEntity ("Blaze" , EntityBlaze .class );
2025- Entity .registerEntity ("CaveSpider" , EntityCaveSpider .class );
2026- Entity .registerEntity ("Creeper" , EntityCreeper .class );
2027- Entity .registerEntity ("Drowned" , EntityDrowned .class );
2028- Entity .registerEntity ("ElderGuardian" , EntityElderGuardian .class );
2029- Entity .registerEntity ("EnderDragon" , EntityEnderDragon .class );
2030- Entity .registerEntity ("Enderman" , EntityEnderman .class );
2031- Entity .registerEntity ("Endermite" , EntityEndermite .class );
2032- Entity .registerEntity ("Evoker" , EntityEvoker .class );
2033- Entity .registerEntity ("Ghast" , EntityGhast .class );
2034- Entity .registerEntity ("Guardian" , EntityGuardian .class );
2035- Entity .registerEntity ("Husk" , EntityHusk .class );
2036- Entity .registerEntity ("MagmaCube" , EntityMagmaCube .class );
2037- Entity .registerEntity ("Phantom" , EntityPhantom .class );
2038- Entity .registerEntity ("Pillager" , EntityPillager .class );
2039- Entity .registerEntity ("Ravager" , EntityRavager .class );
2040- Entity .registerEntity ("Shulker" , EntityShulker .class );
2041- Entity .registerEntity ("Silverfish" , EntitySilverfish .class );
2042- Entity .registerEntity ("Skeleton" , EntitySkeleton .class );
2043- Entity .registerEntity ("Slime" , EntitySlime .class );
2044- Entity .registerEntity ("Spider" , EntitySpider .class );
2045- Entity .registerEntity ("Stray" , EntityStray .class );
2046- Entity .registerEntity ("Vex" , EntityVex .class );
2047- Entity .registerEntity ("Vindicator" , EntityVindicator .class );
2048- Entity .registerEntity ("Witch" , EntityWitch .class );
2049- Entity .registerEntity ("Wither" , EntityWither .class );
2050- Entity .registerEntity ("WitherSkeleton" , EntityWitherSkeleton .class );
2051- Entity .registerEntity ("Zombie" , EntityZombie .class );
2052- Entity .registerEntity ("ZombiePigman" , EntityZombiePigman .class );
2053- Entity .registerEntity ("ZombieVillager" , EntityZombieVillager .class );
2054- Entity .registerEntity ("ZombieVillagerV1" , EntityZombieVillagerV1 .class );
2055- //Passive
2056- Entity .registerEntity ("Bat" , EntityBat .class );
2057- Entity .registerEntity ("Cat" , EntityCat .class );
2058- Entity .registerEntity ("Chicken" , EntityChicken .class );
2059- Entity .registerEntity ("Cod" , EntityCod .class );
2060- Entity .registerEntity ("Cow" , EntityCow .class );
2061- Entity .registerEntity ("Dolphin" , EntityDolphin .class );
2062- Entity .registerEntity ("Donkey" , EntityDonkey .class );
2063- Entity .registerEntity ("Horse" , EntityHorse .class );
2064- Entity .registerEntity ("Llama" , EntityLlama .class );
2065- Entity .registerEntity ("Mooshroom" , EntityMooshroom .class );
2066- Entity .registerEntity ("Mule" , EntityMule .class );
2067- Entity .registerEntity ("Ocelot" , EntityOcelot .class );
2068- Entity .registerEntity ("Panda" , EntityPanda .class );
2069- Entity .registerEntity ("Parrot" , EntityParrot .class );
2070- Entity .registerEntity ("Pig" , EntityPig .class );
2071- Entity .registerEntity ("PolarBear" , EntityPolarBear .class );
2072- Entity .registerEntity ("Pufferfish" , EntityPufferfish .class );
2073- Entity .registerEntity ("Rabbit" , EntityRabbit .class );
2074- Entity .registerEntity ("Salmon" , EntitySalmon .class );
2075- Entity .registerEntity ("Sheep" , EntitySheep .class );
2076- Entity .registerEntity ("SkeletonHorse" , EntitySkeletonHorse .class );
2077- Entity .registerEntity ("Squid" , EntitySquid .class );
2078- Entity .registerEntity ("TropicalFish" , EntityTropicalFish .class );
2079- Entity .registerEntity ("Turtle" , EntityTurtle .class );
2080- Entity .registerEntity ("Villager" , EntityVillager .class );
2081- Entity .registerEntity ("VillagerV1" , EntityVillagerV1 .class );
2082- Entity .registerEntity ("WanderingTrader" , EntityWanderingTrader .class );
2083- Entity .registerEntity ("Wolf" , EntityWolf .class );
2084- Entity .registerEntity ("ZombieHorse" , EntityZombieHorse .class );
2085- //Projectile
2086- Entity .registerEntity ("Egg" , EntityEgg .class );
2087- Entity .registerEntity ("ThrownExpBottle" , EntityExpBottle .class );
2088- Entity .registerEntity ("ThrownPotion" , EntityPotion .class );
2089- Entity .registerEntity ("ThrownTrident" , EntityThrownTrident .class );
2090- Entity .registerEntity ("XpOrb" , EntityXPOrb .class );
2091-
2092- Entity .registerEntity ("Human" , EntityHuman .class , true );
2093- //Vehicle
2094- Entity .registerEntity ("Boat" , EntityBoat .class );
2095- Entity .registerEntity ("MinecartChest" , EntityMinecartChest .class );
2096- Entity .registerEntity ("MinecartHopper" , EntityMinecartHopper .class );
2097- Entity .registerEntity ("MinecartRideable" , EntityMinecartEmpty .class );
2098- Entity .registerEntity ("MinecartTnt" , EntityMinecartTNT .class );
2099-
2100- Entity .registerEntity ("EndCrystal" , EntityEndCrystal .class );
2101- Entity .registerEntity ("FishingHook" , EntityFishingHook .class );
2102- }
2103-
21042009 private void registerBlockEntities () {
21052010 BlockEntity .registerBlockEntity (BlockEntity .FURNACE , BlockEntityFurnace .class );
21062011 BlockEntity .registerBlockEntity (BlockEntity .CHEST , BlockEntityChest .class );
0 commit comments