[DEV] Backport Fixes from DEV branch

- BUG - Server being pinged constantly during direct connect or lan
- BUG - Single Player Nojang Server not returning null in multiplayer
- FEAT - Way to check if login/logout event was sent from vanish
This commit is contained in:
2024-07-05 21:06:03 +02:00
parent ce6ee95256
commit a0dcfe501a
55 changed files with 209 additions and 122 deletions

2
.idea/misc.xml generated
View File

@@ -12,7 +12,7 @@
<component name="FrameworkDetectionExcludesConfiguration"> <component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" /> <file type="web" url="file://$PROJECT_DIR$" />
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="corretto-21" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="temurin-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>

View File

@@ -4,6 +4,7 @@ import com.hypherionmc.craterlib.core.event.CraterEvent;
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer; import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor @RequiredArgsConstructor
@Getter @Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player; private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent { public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) { public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent { public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) { public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }

View File

@@ -72,6 +72,9 @@ public class BridgedMinecraft {
@Nullable @Nullable
public BridgedIntegratedServer getSinglePlayerServer() { public BridgedIntegratedServer getSinglePlayerServer() {
if (internal.getSingleplayerServer() == null)
return null;
return BridgedIntegratedServer.of(internal.getSingleplayerServer()); return BridgedIntegratedServer.of(internal.getSingleplayerServer());
} }

View File

@@ -5,7 +5,6 @@ import lombok.RequiredArgsConstructor;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerStatusPinger;
@RequiredArgsConstructor(staticName = "of") @RequiredArgsConstructor(staticName = "of")
public class BridgedServerData { public class BridgedServerData {
@@ -26,9 +25,7 @@ public class BridgedServerData {
public int getMaxPlayers() { public int getMaxPlayers() {
if (!internal.pinged || internal.status.getString() == null) { if (!internal.pinged || internal.status.getString() == null) {
try { return internal.playerList.size() + 1;
new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }
try { try {

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() { public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> { VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) { if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer), true));
} }
}); });
} }

View File

@@ -17,9 +17,9 @@ public class Vanish {
public void vanishevent(PlayerVanishEvent event) { public void vanishevent(PlayerVanishEvent event) {
if (event.getEntity() instanceof Player p) { if (event.getEntity() instanceof Player p) {
if (event.isVanished()) { if (event.isVanished()) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(p))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(p), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(p))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(p), true));
} }
} }
} }

View File

@@ -4,6 +4,7 @@ import com.hypherionmc.craterlib.core.event.CraterEvent;
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer; import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor @RequiredArgsConstructor
@Getter @Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player; private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent { public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) { public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent { public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) { public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }

View File

@@ -72,6 +72,9 @@ public class BridgedMinecraft {
@Nullable @Nullable
public BridgedIntegratedServer getSinglePlayerServer() { public BridgedIntegratedServer getSinglePlayerServer() {
if (internal.getSingleplayerServer() == null)
return null;
return BridgedIntegratedServer.of(internal.getSingleplayerServer()); return BridgedIntegratedServer.of(internal.getSingleplayerServer());
} }

View File

@@ -5,7 +5,6 @@ import lombok.RequiredArgsConstructor;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerStatusPinger;
@RequiredArgsConstructor(staticName = "of") @RequiredArgsConstructor(staticName = "of")
public class BridgedServerData { public class BridgedServerData {
@@ -26,9 +25,7 @@ public class BridgedServerData {
public int getMaxPlayers() { public int getMaxPlayers() {
if (!internal.pinged || internal.status.getString() == null) { if (!internal.pinged || internal.status.getString() == null) {
try { return internal.playerList.size() + 1;
new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }
try { try {

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() { public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> { VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) { if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer), true));
} }
}); });
} }

View File

@@ -15,9 +15,9 @@ public class Vanish {
@SubscribeEvent @SubscribeEvent
public void vanishevent(PlayerVanishEvent event) { public void vanishevent(PlayerVanishEvent event) {
if (event.isVanished()) { if (event.isVanished()) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
} }
} }

View File

@@ -4,6 +4,7 @@ import com.hypherionmc.craterlib.core.event.CraterEvent;
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer; import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor @RequiredArgsConstructor
@Getter @Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player; private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent { public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) { public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent { public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) { public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }

View File

@@ -72,6 +72,9 @@ public class BridgedMinecraft {
@Nullable @Nullable
public BridgedIntegratedServer getSinglePlayerServer() { public BridgedIntegratedServer getSinglePlayerServer() {
if (internal.getSingleplayerServer() == null)
return null;
return BridgedIntegratedServer.of(internal.getSingleplayerServer()); return BridgedIntegratedServer.of(internal.getSingleplayerServer());
} }

View File

@@ -5,7 +5,6 @@ import lombok.RequiredArgsConstructor;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerStatusPinger;
@RequiredArgsConstructor(staticName = "of") @RequiredArgsConstructor(staticName = "of")
public class BridgedServerData { public class BridgedServerData {
@@ -26,9 +25,7 @@ public class BridgedServerData {
public int getMaxPlayers() { public int getMaxPlayers() {
if (!internal.pinged || internal.status.getString() == null) { if (!internal.pinged || internal.status.getString() == null) {
try { return internal.playerList.size() + 1;
new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }
try { try {

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() { public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> { VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) { if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer), true));
} }
}); });
} }

View File

@@ -15,9 +15,9 @@ public class Vanish {
@SubscribeEvent @SubscribeEvent
public void vanishevent(PlayerVanishEvent event) { public void vanishevent(PlayerVanishEvent event) {
if (event.isVanished()) { if (event.isVanished()) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
} }
} }

View File

@@ -4,6 +4,7 @@ import com.hypherionmc.craterlib.core.event.CraterEvent;
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer; import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor @RequiredArgsConstructor
@Getter @Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player; private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent { public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) { public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent { public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) { public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }

View File

@@ -72,6 +72,9 @@ public class BridgedMinecraft {
@Nullable @Nullable
public BridgedIntegratedServer getSinglePlayerServer() { public BridgedIntegratedServer getSinglePlayerServer() {
if (internal.getSingleplayerServer() == null)
return null;
return BridgedIntegratedServer.of(internal.getSingleplayerServer()); return BridgedIntegratedServer.of(internal.getSingleplayerServer());
} }

View File

@@ -4,7 +4,6 @@ import com.hypherionmc.craterlib.utils.ChatUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerStatusPinger;
@RequiredArgsConstructor(staticName = "of") @RequiredArgsConstructor(staticName = "of")
public class BridgedServerData { public class BridgedServerData {
@@ -25,12 +24,10 @@ public class BridgedServerData {
public int getMaxPlayers() { public int getMaxPlayers() {
if (!internal.pinged || internal.players == null) { if (!internal.pinged || internal.players == null) {
try { return internal.playerList.size() + 1;
new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }
return internal.players == null ? 0 : internal.players.max(); return internal.players.max();
} }
public ServerData toMojang() { public ServerData toMojang() {

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() { public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> { VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) { if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer), true));
} }
}); });
} }

View File

@@ -15,9 +15,9 @@ public class Vanish {
@SubscribeEvent @SubscribeEvent
public void vanishevent(PlayerVanishEvent event) { public void vanishevent(PlayerVanishEvent event) {
if (event.isVanished()) { if (event.isVanished()) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
} }
} }

View File

@@ -4,6 +4,7 @@ import com.hypherionmc.craterlib.core.event.CraterEvent;
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer; import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor @RequiredArgsConstructor
@Getter @Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player; private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent { public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) { public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent { public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) { public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }

View File

@@ -72,6 +72,9 @@ public class BridgedMinecraft {
@Nullable @Nullable
public BridgedIntegratedServer getSinglePlayerServer() { public BridgedIntegratedServer getSinglePlayerServer() {
if (internal.getSingleplayerServer() == null)
return null;
return BridgedIntegratedServer.of(internal.getSingleplayerServer()); return BridgedIntegratedServer.of(internal.getSingleplayerServer());
} }

View File

@@ -4,7 +4,6 @@ import com.hypherionmc.craterlib.utils.ChatUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerStatusPinger;
@RequiredArgsConstructor(staticName = "of") @RequiredArgsConstructor(staticName = "of")
public class BridgedServerData { public class BridgedServerData {
@@ -25,12 +24,10 @@ public class BridgedServerData {
public int getMaxPlayers() { public int getMaxPlayers() {
if (!internal.pinged || internal.players == null) { if (!internal.pinged || internal.players == null) {
try { return internal.playerList.size() + 1;
new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }
return internal.players == null ? 0 : internal.players.max(); return internal.players.max();
} }
public ServerData toMojang() { public ServerData toMojang() {

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() { public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> { VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) { if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer), true));
} }
}); });
} }

View File

@@ -15,9 +15,9 @@ public class Vanish {
@SubscribeEvent @SubscribeEvent
public void vanishevent(PlayerVanishEvent event) { public void vanishevent(PlayerVanishEvent event) {
if (event.isVanished()) { if (event.isVanished()) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
} }
} }

View File

@@ -15,9 +15,9 @@ public class Vanish {
@SubscribeEvent @SubscribeEvent
public void vanishevent(PlayerVanishEvent event) { public void vanishevent(PlayerVanishEvent event) {
if (event.isVanished()) { if (event.isVanished()) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
} }
} }

View File

@@ -4,6 +4,7 @@ import com.hypherionmc.craterlib.core.event.CraterEvent;
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer; import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor @RequiredArgsConstructor
@Getter @Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player; private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent { public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) { public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent { public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) { public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }

View File

@@ -72,6 +72,9 @@ public class BridgedMinecraft {
@Nullable @Nullable
public BridgedIntegratedServer getSinglePlayerServer() { public BridgedIntegratedServer getSinglePlayerServer() {
if (internal.getSingleplayerServer() == null)
return null;
return BridgedIntegratedServer.of(internal.getSingleplayerServer()); return BridgedIntegratedServer.of(internal.getSingleplayerServer());
} }

View File

@@ -4,7 +4,6 @@ import com.hypherionmc.craterlib.utils.ChatUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerStatusPinger;
@RequiredArgsConstructor(staticName = "of") @RequiredArgsConstructor(staticName = "of")
public class BridgedServerData { public class BridgedServerData {
@@ -25,12 +24,10 @@ public class BridgedServerData {
public int getMaxPlayers() { public int getMaxPlayers() {
if (!internal.pinged || internal.players == null) { if (!internal.pinged || internal.players == null) {
try { return internal.playerList.size() + 1;
new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }
return internal.players == null ? 0 : internal.players.max(); return internal.players.max();
} }
public ServerData toMojang() { public ServerData toMojang() {

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() { public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> { VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) { if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer), true));
} }
}); });
} }

View File

@@ -15,9 +15,9 @@ public class Vanish {
@SubscribeEvent @SubscribeEvent
public void vanishevent(PlayerVanishEvent event) { public void vanishevent(PlayerVanishEvent event) {
if (event.isVanished()) { if (event.isVanished()) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
} }
} }

View File

@@ -4,6 +4,7 @@ import com.hypherionmc.craterlib.core.event.CraterEvent;
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer; import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor @RequiredArgsConstructor
@Getter @Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player; private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent { public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) { public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent { public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) { public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player); super(player);
this.isFromVanish = false;
} }
} }

View File

@@ -72,6 +72,9 @@ public class BridgedMinecraft {
@Nullable @Nullable
public BridgedIntegratedServer getSinglePlayerServer() { public BridgedIntegratedServer getSinglePlayerServer() {
if (internal.getSingleplayerServer() == null)
return null;
return BridgedIntegratedServer.of(internal.getSingleplayerServer()); return BridgedIntegratedServer.of(internal.getSingleplayerServer());
} }

View File

@@ -4,7 +4,6 @@ import com.hypherionmc.craterlib.utils.ChatUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerStatusPinger;
@RequiredArgsConstructor(staticName = "of") @RequiredArgsConstructor(staticName = "of")
public class BridgedServerData { public class BridgedServerData {
@@ -25,12 +24,10 @@ public class BridgedServerData {
public int getMaxPlayers() { public int getMaxPlayers() {
if (internal.players == null) { if (internal.players == null) {
try { return internal.playerList.size() + 1;
new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
} catch (Exception ignored) {}
} }
return internal.players == null ? 0 : internal.players.max(); return internal.players.max();
} }
public ServerData toMojang() { public ServerData toMojang() {

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() { public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> { VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) { if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer), true));
} }
}); });
} }

View File

@@ -15,9 +15,9 @@ public class Vanish {
@SubscribeEvent @SubscribeEvent
public void vanishevent(PlayerVanishEvent event) { public void vanishevent(PlayerVanishEvent event) {
if (event.isVanished()) { if (event.isVanished()) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
} else { } else {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
} }
} }

View File

@@ -1 +1 @@
843f23b9c72c71b2ac99a9f3b874a4613462980e 0f17e8f844b81cdc1fe1c7b53c9801aea01b9e5d

View File

@@ -6,21 +6,18 @@
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
+import net.minecraft.ChatFormatting; +import net.minecraft.ChatFormatting;
import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerStatusPinger;
@@ -24,13 +25,17 @@ @RequiredArgsConstructor(staticName = "of")
@@ -23,11 +24,15 @@
} }
public int getMaxPlayers() { public int getMaxPlayers() {
- if (internal.players == null) { - if (internal.players == null) {
+ if (!internal.pinged || internal.status.getString() == null) { + if (!internal.pinged || internal.status.getString() == null) {
try { return internal.playerList.size() + 1;
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }
- return internal.players == null ? 0 : internal.players.max(); - return internal.players.max();
+ try { + try {
+ return Integer.parseInt(ChatFormatting.stripFormatting(internal.status.getString()).split("/")[1]); + return Integer.parseInt(ChatFormatting.stripFormatting(internal.status.getString()).split("/")[1]);
+ } catch (Exception ignored) {} + } catch (Exception ignored) {}

View File

@@ -20,9 +20,9 @@
+ public void vanishevent(PlayerVanishEvent event) { + public void vanishevent(PlayerVanishEvent event) {
+ if (event.getEntity() instanceof Player p) { + if (event.getEntity() instanceof Player p) {
+ if (event.isVanished()) { + if (event.isVanished()) {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(p))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(p), true));
+ } else { + } else {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(p))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(p), true));
+ } + }
+ } + }
+ } + }

View File

@@ -18,9 +18,9 @@
- @SubscribeEvent - @SubscribeEvent
- public void vanishevent(PlayerVanishEvent event) { - public void vanishevent(PlayerVanishEvent event) {
- if (event.isVanished()) { - if (event.isVanished()) {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
- } else { - } else {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
- } - }
- } - }
- -

View File

@@ -6,21 +6,18 @@
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
+import net.minecraft.ChatFormatting; +import net.minecraft.ChatFormatting;
import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerStatusPinger;
@@ -24,13 +25,17 @@ @RequiredArgsConstructor(staticName = "of")
@@ -23,11 +24,15 @@
} }
public int getMaxPlayers() { public int getMaxPlayers() {
- if (internal.players == null) { - if (internal.players == null) {
+ if (!internal.pinged || internal.status.getString() == null) { + if (!internal.pinged || internal.status.getString() == null) {
try { return internal.playerList.size() + 1;
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }
- return internal.players == null ? 0 : internal.players.max(); - return internal.players.max();
+ try { + try {
+ return Integer.parseInt(ChatFormatting.stripFormatting(internal.status.getString()).split("/")[1]); + return Integer.parseInt(ChatFormatting.stripFormatting(internal.status.getString()).split("/")[1]);
+ } catch (Exception ignored) {} + } catch (Exception ignored) {}

View File

@@ -18,9 +18,9 @@
+ @SubscribeEvent + @SubscribeEvent
+ public void vanishevent(PlayerVanishEvent event) { + public void vanishevent(PlayerVanishEvent event) {
+ if (event.isVanished()) { + if (event.isVanished()) {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
+ } else { + } else {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
+ } + }
+ } + }
+ +

View File

@@ -18,9 +18,9 @@
- @SubscribeEvent - @SubscribeEvent
- public void vanishevent(PlayerVanishEvent event) { - public void vanishevent(PlayerVanishEvent event) {
- if (event.isVanished()) { - if (event.isVanished()) {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
- } else { - } else {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
- } - }
- } - }
- -

View File

@@ -6,21 +6,18 @@
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
+import net.minecraft.ChatFormatting; +import net.minecraft.ChatFormatting;
import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerStatusPinger;
@@ -24,13 +25,17 @@ @RequiredArgsConstructor(staticName = "of")
@@ -23,11 +24,15 @@
} }
public int getMaxPlayers() { public int getMaxPlayers() {
- if (internal.players == null) { - if (internal.players == null) {
+ if (!internal.pinged || internal.status.getString() == null) { + if (!internal.pinged || internal.status.getString() == null) {
try { return internal.playerList.size() + 1;
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }
- return internal.players == null ? 0 : internal.players.max(); - return internal.players.max();
+ try { + try {
+ return Integer.parseInt(ChatFormatting.stripFormatting(internal.status.getString()).split("/")[1]); + return Integer.parseInt(ChatFormatting.stripFormatting(internal.status.getString()).split("/")[1]);
+ } catch (Exception ignored) {} + } catch (Exception ignored) {}

View File

@@ -18,9 +18,9 @@
+ @SubscribeEvent + @SubscribeEvent
+ public void vanishevent(PlayerVanishEvent event) { + public void vanishevent(PlayerVanishEvent event) {
+ if (event.isVanished()) { + if (event.isVanished()) {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
+ } else { + } else {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
+ } + }
+ } + }
+ +

View File

@@ -18,9 +18,9 @@
- @SubscribeEvent - @SubscribeEvent
- public void vanishevent(PlayerVanishEvent event) { - public void vanishevent(PlayerVanishEvent event) {
- if (event.isVanished()) { - if (event.isVanished()) {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
- } else { - } else {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
- } - }
- } - }
- -

View File

@@ -1,14 +1,11 @@
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java --- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java
@@ -24,9 +24,9 @@ @@ -23,7 +23,7 @@
} }
public int getMaxPlayers() { public int getMaxPlayers() {
- if (internal.players == null) { - if (internal.players == null) {
+ if (!internal.pinged || internal.players == null) { + if (!internal.pinged || internal.players == null) {
try { return internal.playerList.size() + 1;
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }

View File

@@ -18,9 +18,9 @@
+ @SubscribeEvent + @SubscribeEvent
+ public void vanishevent(PlayerVanishEvent event) { + public void vanishevent(PlayerVanishEvent event) {
+ if (event.isVanished()) { + if (event.isVanished()) {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
+ } else { + } else {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
+ } + }
+ } + }
+ +

View File

@@ -18,9 +18,9 @@
- @SubscribeEvent - @SubscribeEvent
- public void vanishevent(PlayerVanishEvent event) { - public void vanishevent(PlayerVanishEvent event) {
- if (event.isVanished()) { - if (event.isVanished()) {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
- } else { - } else {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
- } - }
- } - }
- -

View File

@@ -1,14 +1,11 @@
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java --- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java
@@ -24,9 +24,9 @@ @@ -23,7 +23,7 @@
} }
public int getMaxPlayers() { public int getMaxPlayers() {
- if (internal.players == null) { - if (internal.players == null) {
+ if (!internal.pinged || internal.players == null) { + if (!internal.pinged || internal.players == null) {
try { return internal.playerList.size() + 1;
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }

View File

@@ -18,9 +18,9 @@
+ @SubscribeEvent + @SubscribeEvent
+ public void vanishevent(PlayerVanishEvent event) { + public void vanishevent(PlayerVanishEvent event) {
+ if (event.isVanished()) { + if (event.isVanished()) {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
+ } else { + } else {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
+ } + }
+ } + }
+ +

View File

@@ -1,14 +1,11 @@
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java --- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java
@@ -24,9 +24,9 @@ @@ -23,7 +23,7 @@
} }
public int getMaxPlayers() { public int getMaxPlayers() {
- if (internal.players == null) { - if (internal.players == null) {
+ if (!internal.pinged || internal.players == null) { + if (!internal.pinged || internal.players == null) {
try { return internal.playerList.size() + 1;
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
} }

View File

@@ -18,9 +18,9 @@
+ @SubscribeEvent + @SubscribeEvent
+ public void vanishevent(PlayerVanishEvent event) { + public void vanishevent(PlayerVanishEvent event) {
+ if (event.isVanished()) { + if (event.isVanished()) {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
+ } else { + } else {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
+ } + }
+ } + }
+ +

View File

@@ -18,9 +18,9 @@
- @SubscribeEvent - @SubscribeEvent
- public void vanishevent(PlayerVanishEvent event) { - public void vanishevent(PlayerVanishEvent event) {
- if (event.isVanished()) { - if (event.isVanished()) {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true));
- } else { - } else {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
- } - }
- } - }
- -