Skip to content

Commit 2f3b17f

Browse files
committed
Fully added vanish command to really be seem as offline
1 parent 6597ac1 commit 2f3b17f

File tree

3 files changed

+78
-1
lines changed

3 files changed

+78
-1
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ dependencies {
2020
compileOnly 'me.lucko:spark-api:0.1-SNAPSHOT'
2121
compileOnly 'net.dmulloy2:ProtocolLib:5.4.0'
2222
implementation 'net.dv8tion:JDA:5.0.0-beta.20'
23-
implementation 'com.github.LarsEsDoch:ApiManager:4.3.5'
23+
implementation 'com.github.LarsEsDoch:ApiManager:4.3.6'
2424
}
2525

2626
tasks {

src/main/java/dev/lars/utilsmanager/commands/admin/VanishCommand.java

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
import dev.lars.apimanager.apis.languageAPI.LanguageAPI;
44
import dev.lars.apimanager.apis.playerIdentityAPI.PlayerIdentityAPI;
55
import dev.lars.utilsmanager.UtilsManager;
6+
import dev.lars.utilsmanager.utils.RankStatements;
67
import dev.lars.utilsmanager.utils.Statements;
78
import io.papermc.paper.command.brigadier.BasicCommand;
89
import io.papermc.paper.command.brigadier.CommandSourceStack;
910
import net.kyori.adventure.text.Component;
1011
import net.kyori.adventure.text.format.NamedTextColor;
12+
import org.bukkit.Bukkit;
1113
import org.bukkit.entity.Player;
1214
import org.jetbrains.annotations.NotNull;
1315

@@ -26,6 +28,32 @@ public void execute(@NotNull CommandSourceStack stack, @NotNull String[] args) {
2628
if (PlayerIdentityAPI.getApi().isVanished(player)) {
2729
player.setInvisible(false);
2830
PlayerIdentityAPI.getApi().setVanished(player, false);
31+
32+
for (Player p : Bukkit.getOnlinePlayers()) {
33+
if (LanguageAPI.getApi().getLanguage(p) == 2) {
34+
p.sendMessage(Statements.getPrefix().append(RankStatements.getRank(player))
35+
.append(Component.text(" hat den Server betreten.", NamedTextColor.WHITE)));
36+
} else {
37+
p.sendMessage(Statements.getPrefix().append(RankStatements.getRank(player))
38+
.append(Component.text(" joined the server.", NamedTextColor.WHITE)));
39+
}
40+
}
41+
42+
Bukkit.getScheduler().runTaskAsynchronously(UtilsManager.getInstance(), bukkitTask -> {
43+
StringBuilder message;
44+
45+
if (Bukkit.getOnlinePlayers().size() > 1) {
46+
message = new StringBuilder(RankStatements.getUnformattedRank(player) + player.getName() + " ist dem Server beigetreten.\n\nEs sind aktuell " + Bukkit.getOnlinePlayers().size() + " Spieler online.\n");
47+
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
48+
message.append(RankStatements.getUnformattedRank(onlinePlayer)).append(onlinePlayer.getName()).append("\n");
49+
}
50+
} else {
51+
message = new StringBuilder(RankStatements.getUnformattedRank(player) + player.getName() + " ist dem Server beigetreten.\n\nEs ist aktuell nur er online.");
52+
}
53+
54+
UtilsManager.getInstance().getDiscordBot().sendPlayerMessage(String.valueOf(message));
55+
});
56+
2957
if(LanguageAPI.getApi().getLanguage(player) == 2) {
3058
player.sendMessage(Statements.getPrefix().append(Component.text("Du bist nun für alle wieder ", NamedTextColor.WHITE))
3159
.append(Component.text("sichtbar ", NamedTextColor.GRAY)).append(Component.text("!", NamedTextColor.WHITE)));
@@ -36,6 +64,37 @@ public void execute(@NotNull CommandSourceStack stack, @NotNull String[] args) {
3664
} else {
3765
player.setInvisible(true);
3866
PlayerIdentityAPI.getApi().setVanished(player, true);
67+
68+
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
69+
if (LanguageAPI.getApi().getLanguage(onlinePlayer) == 2) {
70+
onlinePlayer.sendMessage(Statements.getPrefix().append(RankStatements.getRank(player))
71+
.append(Component.text(" hat den Server verlassen.", NamedTextColor.WHITE)));
72+
} else {
73+
onlinePlayer.sendMessage(Statements.getPrefix().append(RankStatements.getRank(player))
74+
.append(Component.text(" left the network.", NamedTextColor.WHITE)));
75+
}
76+
}
77+
78+
Bukkit.getScheduler().runTaskAsynchronously(UtilsManager.getInstance(), bukkitTask -> {
79+
StringBuilder message = new StringBuilder();
80+
81+
if (Bukkit.getOnlinePlayers().isEmpty()) {
82+
message = new StringBuilder(RankStatements.getUnformattedRank(player) + player.getName() + " hat den Server verlassen.\n\nEs ist jetzt kein Spieler mehr online.");
83+
} if(Bukkit.getOnlinePlayers().size() == 1) {
84+
message = new StringBuilder(RankStatements.getUnformattedRank(player) + player.getName() + " hat den Server verlassen.\n\nEs ist jetzt nur noch 1 Spieler online.\n");
85+
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
86+
message.append(RankStatements.getUnformattedRank(onlinePlayer)).append(onlinePlayer.getName()).append("\n");
87+
}
88+
} if (Bukkit.getOnlinePlayers().size() > 1) {
89+
message = new StringBuilder(RankStatements.getUnformattedRank(player) + player.getName() + " hat den Server verlassen.\n\nEs sind jetzt nur noch " + (Bukkit.getOnlinePlayers().size()) + " Spieler online.\n");
90+
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
91+
message.append(RankStatements.getUnformattedRank(onlinePlayer)).append(onlinePlayer.getName()).append("\n");
92+
}
93+
}
94+
95+
UtilsManager.getInstance().getDiscordBot().sendPlayerMessage(String.valueOf(message));
96+
});
97+
3998
if(LanguageAPI.getApi().getLanguage(player) == 2) {
4099
player.sendMessage(Statements.getPrefix().append(Component.text("Du bist nun für alle ", NamedTextColor.WHITE))
41100
.append(Component.text("unsichtbar ", NamedTextColor.GRAY)).append(Component.text("!", NamedTextColor.WHITE)));

src/main/java/dev/lars/utilsmanager/listener/server/ServerPingListener.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ public void onServerPing(PaperServerListPingEvent event) {
5656
if (Bukkit.hasWhitelist()) {
5757
String info = "Info: Whitelist enabled!";
5858
Component centered = centerLines(wrapText(info, totalWidth), totalWidth, NamedTextColor.GOLD, extraShift);
59+
event.getListedPlayers().removeIf(listedPlayerInfo -> {
60+
OfflinePlayer offline = Bukkit.getOfflinePlayer(listedPlayerInfo.id());
61+
return PlayerIdentityAPI.getApi().isVanished(offline);
62+
});
63+
long visibleCount = event.getListedPlayers().size();
64+
event.setNumPlayers((int) visibleCount);
5965
event.motd(header.append(centered));
6066
return;
6167
}
@@ -70,13 +76,23 @@ public void onServerPing(PaperServerListPingEvent event) {
7076
Component firstLine = centerLines(List.of(lines.getFirst()), totalWidth, NamedTextColor.GOLD, extraShift);
7177
List<String> detailLines = lines.size() > 1 ? lines.subList(1, lines.size()) : List.of();
7278
Component details = centerLines(detailLines, totalWidth, NamedTextColor.RED, extraShift);
79+
event.getListedPlayers().removeIf(listedPlayerInfo -> {
80+
OfflinePlayer offline = Bukkit.getOfflinePlayer(listedPlayerInfo.id());
81+
return PlayerIdentityAPI.getApi().isVanished(offline);
82+
});
83+
long visibleCount = event.getListedPlayers().size();
84+
event.setNumPlayers((int) visibleCount);
7385
event.motd(header.append(firstLine).append(details));
7486
return;
7587
}
7688

7789
if (Bukkit.getOnlinePlayers().size() >= Bukkit.getMaxPlayers()) {
7890
String info = "Info: Server is full!";
7991
Component centered = centerLines(wrapText(info, totalWidth), totalWidth, NamedTextColor.RED, extraShift);
92+
event.getListedPlayers().removeIf(listedPlayerInfo -> {
93+
OfflinePlayer offline = Bukkit.getOfflinePlayer(listedPlayerInfo.id());
94+
return PlayerIdentityAPI.getApi().isVanished(offline);
95+
});
8096
event.motd(header.append(centered));
8197
return;
8298
}
@@ -88,6 +104,8 @@ public void onServerPing(PaperServerListPingEvent event) {
88104
OfflinePlayer offline = Bukkit.getOfflinePlayer(listedPlayerInfo.id());
89105
return PlayerIdentityAPI.getApi().isVanished(offline);
90106
});
107+
long visibleCount = event.getListedPlayers().size();
108+
event.setNumPlayers((int) visibleCount);
91109
}
92110

93111
private static List<String> wrapText(String text, int width) {

0 commit comments

Comments
 (0)