[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">
<file type="web" url="file://$PROJECT_DIR$" />
</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" />
</component>
</project>

View File

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

View File

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

View File

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

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer)));
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} 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) {
if (event.getEntity() instanceof Player p) {
if (event.isVanished()) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(p)));
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(p), true));
} 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 lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor
@Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}

View File

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

View File

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

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer)));
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} 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
public void vanishevent(PlayerVanishEvent event) {
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 {
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 lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor
@Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}

View File

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

View File

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

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer)));
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} 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
public void vanishevent(PlayerVanishEvent event) {
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 {
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 lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor
@Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}

View File

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

View File

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

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer)));
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} 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
public void vanishevent(PlayerVanishEvent event) {
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 {
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 lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor
@Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}

View File

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

View File

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

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer)));
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} 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
public void vanishevent(PlayerVanishEvent event) {
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 {
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
public void vanishevent(PlayerVanishEvent event) {
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 {
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 lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor
@Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}

View File

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

View File

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

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer)));
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} 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
public void vanishevent(PlayerVanishEvent event) {
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 {
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 lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@RequiredArgsConstructor
@Getter
@@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent {
private final BridgedPlayer player;
@Getter
public static class PlayerLoggedIn extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedIn(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}
@Getter @Setter
public static class PlayerLoggedOut extends CraterPlayerEvent {
private final boolean isFromVanish;
public PlayerLoggedOut(BridgedPlayer player) {
this(player, false);
}
public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) {
super(player);
this.isFromVanish = false;
}
}

View File

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

View File

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

View File

@@ -12,9 +12,9 @@ public class Vanish {
public static void register() {
VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> {
if (b) {
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer)));
CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true));
} 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
public void vanishevent(PlayerVanishEvent event) {
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 {
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.minecraft.ChatFormatting;
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() {
- if (internal.players == null) {
+ if (!internal.pinged || internal.status.getString() == null) {
try {
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
return internal.playerList.size() + 1;
}
- return internal.players == null ? 0 : internal.players.max();
- return internal.players.max();
+ try {
+ return Integer.parseInt(ChatFormatting.stripFormatting(internal.status.getString()).split("/")[1]);
+ } catch (Exception ignored) {}

View File

@@ -20,9 +20,9 @@
+ public void vanishevent(PlayerVanishEvent event) {
+ if (event.getEntity() instanceof Player p) {
+ if (event.isVanished()) {
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(p)));
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(p), true));
+ } 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
- public void vanishevent(PlayerVanishEvent event) {
- 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 {
- 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.minecraft.ChatFormatting;
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() {
- if (internal.players == null) {
+ if (!internal.pinged || internal.status.getString() == null) {
try {
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
return internal.playerList.size() + 1;
}
- return internal.players == null ? 0 : internal.players.max();
- return internal.players.max();
+ try {
+ return Integer.parseInt(ChatFormatting.stripFormatting(internal.status.getString()).split("/")[1]);
+ } catch (Exception ignored) {}

View File

@@ -18,9 +18,9 @@
+ @SubscribeEvent
+ public void vanishevent(PlayerVanishEvent event) {
+ 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 {
+ 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
- public void vanishevent(PlayerVanishEvent event) {
- 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 {
- 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.minecraft.ChatFormatting;
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() {
- if (internal.players == null) {
+ if (!internal.pinged || internal.status.getString() == null) {
try {
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
return internal.playerList.size() + 1;
}
- return internal.players == null ? 0 : internal.players.max();
- return internal.players.max();
+ try {
+ return Integer.parseInt(ChatFormatting.stripFormatting(internal.status.getString()).split("/")[1]);
+ } catch (Exception ignored) {}

View File

@@ -18,9 +18,9 @@
+ @SubscribeEvent
+ public void vanishevent(PlayerVanishEvent event) {
+ 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 {
+ 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
- public void vanishevent(PlayerVanishEvent event) {
- 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 {
- 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
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java
@@ -24,9 +24,9 @@
@@ -23,7 +23,7 @@
}
public int getMaxPlayers() {
- if (internal.players == null) {
+ if (!internal.pinged || internal.players == null) {
try {
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
return internal.playerList.size() + 1;
}

View File

@@ -18,9 +18,9 @@
+ @SubscribeEvent
+ public void vanishevent(PlayerVanishEvent event) {
+ 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 {
+ 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
- public void vanishevent(PlayerVanishEvent event) {
- 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 {
- 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
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java
@@ -24,9 +24,9 @@
@@ -23,7 +23,7 @@
}
public int getMaxPlayers() {
- if (internal.players == null) {
+ if (!internal.pinged || internal.players == null) {
try {
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
return internal.playerList.size() + 1;
}

View File

@@ -18,9 +18,9 @@
+ @SubscribeEvent
+ public void vanishevent(PlayerVanishEvent event) {
+ 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 {
+ 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
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/multiplayer/BridgedServerData.java
@@ -24,9 +24,9 @@
@@ -23,7 +23,7 @@
}
public int getMaxPlayers() {
- if (internal.players == null) {
+ if (!internal.pinged || internal.players == null) {
try {
- new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
+ new ServerStatusPinger().pingServer(internal, () -> {});
} catch (Exception ignored) {}
return internal.playerList.size() + 1;
}

View File

@@ -18,9 +18,9 @@
+ @SubscribeEvent
+ public void vanishevent(PlayerVanishEvent event) {
+ 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 {
+ 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
- public void vanishevent(PlayerVanishEvent event) {
- 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 {
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity())));
- CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true));
- }
- }
-