Skip to content

Commit 1d4c514

Browse files
committed
update: code clean up
1 parent 1075606 commit 1d4c514

60 files changed

Lines changed: 1014 additions & 148 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

backend-api/src/main/java/net/streamline/apib/depends/PAPIDepend.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public boolean register() {
6060

6161
@Override
6262
public @Nullable String onRequest(OfflinePlayer player, @NotNull String params) {
63-
CosmicPlayer streamPlayer = ModuleUtils.getOrCreatePlayer(player.getUniqueId().toString());
63+
CosmicPlayer streamPlayer = ModuleUtils.getOrCreatePlayer(player.getUniqueId().toString()).orElse(null);
6464
if (streamPlayer == null) return MainMessagesHandler.MESSAGES.DEFAULTS.PLACEHOLDERS.IS_NULL.get();
6565
String toParse;
6666
if (params.startsWith("!")) toParse = "%" + params.substring("!".length()) + "%";

bungee/src/main/java/net/streamline/base/runnables/PlayerChecker.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ public void run() {
1717
StreamlineBungee.getPlayersByUUID().forEach((uuid, player) -> {
1818
if (UserUtils.isLoaded(player.getUniqueId().toString())) return;
1919

20-
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString());
20+
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString()).orElse(null);
21+
if (streamPlayer == null) return;
2122

2223
streamPlayer.setCurrentIp(UserManager.getInstance().parsePlayerIP(player));
2324
streamPlayer.setCurrentName(player.getName());

bungee/src/main/java/net/streamline/platform/BasePlugin.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,9 @@ public static void registerListener(Listener listener) {
184184
ConcurrentSkipListSet<CosmicPlayer> players = new ConcurrentSkipListSet<>();
185185

186186
for (ProxiedPlayer player : onlinePlayers()) {
187-
players.add(getUserManager().getOrCreatePlayer(player));
187+
CosmicPlayer cosmicPlayer = getUserManager().getOrCreatePlayer(player).orElse(null);
188+
if (cosmicPlayer == null) continue;
189+
players.add(cosmicPlayer);
188190
}
189191

190192
return players;
@@ -212,6 +214,11 @@ public ConcurrentSkipListSet<String> getOnlinePlayerNames() {
212214
return r;
213215
}
214216

217+
@Override
218+
public boolean isOfflineMode() {
219+
return ! getInstance().getProxy().getConfig().isOnlineMode();
220+
}
221+
215222
@Override
216223
public long getConnectionThrottle() {
217224
return getInstance().getProxy().getConfig().getThrottle();
@@ -324,7 +331,7 @@ public void sendResourcePack(CosmicResourcePack resourcePack, String uuid) {
324331

325332
public void sendResourcePack(CosmicResourcePack resourcePack, ProxiedPlayer player) {
326333
if (player == null) return;
327-
CosmicPlayer streamPlayer = getUserManager().getOrCreatePlayer(player);
334+
CosmicPlayer streamPlayer = getUserManager().getOrCreatePlayer(player).orElse(null);
328335
if (streamPlayer == null) return;
329336

330337
ResourcePackMessageBuilder.build(streamPlayer, true, streamPlayer, resourcePack).send();

bungee/src/main/java/net/streamline/platform/Messenger.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,10 @@ public BaseComponent[] codedText(String from) {
212212
}
213213

214214
public String replaceAllPlayerBungee(CommandSender sender, String of) {
215-
CosmicSender s = UserManager.getInstance().getOrCreateSender(sender);
215+
CosmicSender s = UserManager.getInstance().getOrCreateSender(sender).orElse(null);
216+
if (s == null) {
217+
return of;
218+
}
216219

217220
return MessageUtils.replaceAllPlayerBungee(s, of);
218221
}

bungee/src/main/java/net/streamline/platform/commands/ProperCommand.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ public ProperCommand(CosmicCommand parent) {
2626

2727
@Override
2828
public void execute(@NotNull CommandSender sender, @NotNull String[] args) {
29-
CosmicSender s = UserManager.getInstance().getOrCreateSender(sender);
29+
CosmicSender s = UserManager.getInstance().getOrCreateSender(sender).orElse(null);
30+
if (s == null) {
31+
MessageUtils.logWarning("Command execution failed: Sender is not a CosmicSender.");
32+
return;
33+
}
3034

3135
parent.baseRun(s, args);
3236
}
@@ -36,7 +40,11 @@ public Iterable<String> onTabComplete(CommandSender sender, String[] args) {
3640
if (args == null) args = new String[] { "" };
3741
if (args.length < 1) args = new String[] { "" };
3842

39-
CosmicSender s = UserManager.getInstance().getOrCreateSender(sender);
43+
CosmicSender s = UserManager.getInstance().getOrCreateSender(sender).orElse(null);
44+
if (s == null) {
45+
MessageUtils.logWarning("Tab completion failed: Sender is not a CosmicSender.");
46+
return new ArrayList<>();
47+
}
4048

4149
ConcurrentSkipListSet<String> r = parent.baseTabComplete(s, args);
4250

bungee/src/main/java/net/streamline/platform/listeners/PlatformListener.java

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ public void onPreJoin(PreLoginEvent event) {
5959
uuid = optional.get();
6060
}
6161

62-
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(uuid);
62+
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(uuid).orElse(null);
63+
if (streamPlayer == null) return;
6364

6465
streamPlayer.setCurrentName(name);
6566
// streamPlayer.getLocation().setServerName(proxiedPlayer.getServer().getInfo().getName());
@@ -91,7 +92,11 @@ public void onJoin(PostLoginEvent event) {
9192

9293
UuidManager.cachePlayer(player.getUniqueId().toString(), player.getName(), UserManager.getInstance().parsePlayerIP(player));
9394

94-
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString());
95+
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString()).orElse(null);
96+
if (streamPlayer == null) {
97+
MessageUtils.logWarning("Failed to create CosmicPlayer for " + player.getName() + " (" + player.getUniqueId() + ")");
98+
return;
99+
}
95100

96101
streamPlayer.setCurrentIp(UserManager.getInstance().parsePlayerIP(player));
97102
streamPlayer.setCurrentName(player.getName());
@@ -106,7 +111,11 @@ public void onJoin(PostLoginEvent event) {
106111
public void onLeave(PlayerDisconnectEvent event) {
107112
ProxiedPlayer player = event.getPlayer();
108113

109-
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString());
114+
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString()).orElse(null);
115+
if (streamPlayer == null) {
116+
MessageUtils.logWarning("Failed to create CosmicPlayer for " + player.getName() + " (" + player.getUniqueId() + ") on disconnect.");
117+
return;
118+
}
110119

111120
LogoutEvent logoutEvent = new LogoutEvent(streamPlayer);
112121
ModuleUtils.fireEvent(logoutEvent);
@@ -119,7 +128,11 @@ public void onLeave(PlayerDisconnectEvent event) {
119128
public void onServerSwitch(ServerConnectedEvent event) {
120129
ProxiedPlayer player = event.getPlayer();
121130

122-
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString());
131+
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString()).orElse(null);
132+
if (streamPlayer == null) {
133+
MessageUtils.logWarning("Failed to create CosmicPlayer for " + player.getName() + " (" + player.getUniqueId() + ") on server switch.");
134+
return;
135+
}
123136

124137
streamPlayer.setServerName(event.getServer().getInfo().getName());
125138
}
@@ -128,7 +141,11 @@ public void onServerSwitch(ServerConnectedEvent event) {
128141
public void onChat(ChatEvent event) {
129142
ProxiedPlayer player = (ProxiedPlayer) event.getSender();
130143

131-
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString());
144+
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString()).orElse(null);
145+
if (streamPlayer == null) {
146+
MessageUtils.logWarning("Failed to create CosmicPlayer for " + player.getName() + " (" + player.getUniqueId() + ") on chat event.");
147+
return;
148+
}
132149

133150
CosmicChatEvent chatEvent = new CosmicChatEvent(streamPlayer, event.getMessage());
134151
StreamlineBungee.getInstance().fireEvent(chatEvent, true);
@@ -151,7 +168,11 @@ public void onPluginMessage(PluginMessageEvent event) {
151168
String tag = event.getTag();
152169
if (event.getData() == null) return;
153170

154-
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString());
171+
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString()).orElse(null);
172+
if (streamPlayer == null) {
173+
MessageUtils.logWarning("Failed to create CosmicPlayer for " + player.getName() + " (" + player.getUniqueId() + ") on plugin message event.");
174+
return;
175+
}
155176

156177
try {
157178
ProxiedMessage messageIn = new ProxiedMessage(streamPlayer, false, event.getData(), tag);
@@ -250,7 +271,11 @@ public void onServerKick(ServerKickEvent event) {
250271
toName = "none";
251272
}
252273

253-
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString());
274+
CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString()).orElse(null);
275+
if (streamPlayer == null) {
276+
MessageUtils.logWarning("Failed to create CosmicPlayer for " + player.getName() + " (" + player.getUniqueId() + ") on server kick event.");
277+
return;
278+
}
254279

255280
KickedFromServerEvent kickedFromServerEvent = new KickedFromServerEvent(streamPlayer, fromName, kickedReason, toName);
256281
ModuleUtils.fireEvent(kickedFromServerEvent);

bungee/src/main/java/net/streamline/platform/savables/UserManager.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import java.net.InetSocketAddress;
2727
import java.net.SocketAddress;
28+
import java.util.Optional;
2829
import java.util.concurrent.ConcurrentSkipListMap;
2930
import java.util.concurrent.ConcurrentSkipListSet;
3031

@@ -37,17 +38,17 @@ public UserManager() {
3738
}
3839

3940
@Override
40-
public CosmicPlayer getOrCreatePlayer(ProxiedPlayer player) {
41+
public Optional<CosmicPlayer> getOrCreatePlayer(ProxiedPlayer player) {
4142
return UserUtils.getOrCreatePlayer(player.getUniqueId().toString());
4243
}
4344

4445
@Override
45-
public CosmicSender getOrCreateSender(CommandSender sender) {
46+
public Optional<CosmicSender> getOrCreateSender(CommandSender sender) {
4647
if (isConsole(sender)) {
47-
return UserUtils.getConsole();
48+
return Optional.ofNullable(UserUtils.getConsole());
4849
} else {
4950
ProxiedPlayer player = (ProxiedPlayer) sender;
50-
return getOrCreatePlayer(player);
51+
return getOrCreatePlayer(player).map(s -> s);
5152
}
5253
}
5354

@@ -131,7 +132,7 @@ public ConcurrentSkipListSet<CosmicPlayer> getUsersOn(String server) {
131132

132133
StreamlineBungee.getInstance().getProxy().getServers().values().forEach(a -> {
133134
a.getPlayers().forEach(b -> {
134-
CosmicPlayer player = getOrCreatePlayer(b);
135+
CosmicPlayer player = getOrCreatePlayer(b).orElse(null);
135136
if (player == null) return;
136137
if (player.isOnline() && player.getServerName().equals(server)) r.add(player);
137138
});
@@ -204,7 +205,9 @@ public ConcurrentSkipListMap<String, CosmicPlayer> ensurePlayers() {
204205

205206
for (ProxiedPlayer player : BasePlugin.onlinePlayers()) {
206207
if (UserUtils.isLoaded(player.getUniqueId().toString())) {
207-
r.put(player.getUniqueId().toString(), getOrCreatePlayer(player));
208+
CosmicPlayer cosmicPlayer = getOrCreatePlayer(player).orElse(null);
209+
if (cosmicPlayer == null) continue;
210+
r.put(player.getUniqueId().toString(), cosmicPlayer);
208211
}
209212
}
210213

singularity-api/src/main/java/singularity/Singularity.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,4 +312,8 @@ public static <P> RealPlayer<P> getPlayerFromUuid(String uuid) {
312312
public static void sendConsoleMessage(String message) {
313313
getInstance().getConsoleHolder().sendConsoleMessage(message);
314314
}
315+
316+
public static boolean isOfflineMode() {
317+
return getInstance().getPlatform().isOfflineMode();
318+
}
315319
}

singularity-api/src/main/java/singularity/command/CommandExecution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public Optional<CosmicSender> getSender() {
3636
String name = split[1];
3737
return UserUtils.getOrCreateSenderByName(name);
3838
} else if (classifier.equals("u")) {
39-
return Optional.of(UserUtils.getOrCreateSender(split[1]));
39+
return UserUtils.getOrCreateSender(split[1]);
4040
} else {
4141
return UserUtils.getOrCreateSenderByName(split[1]);
4242
}

singularity-api/src/main/java/singularity/data/console/CosmicSender.java

Lines changed: 48 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import singularity.Singularity;
66
import singularity.configs.given.GivenConfigs;
77
import singularity.data.players.CosmicPlayer;
8+
import singularity.data.players.events.CreatePlayerEvent;
9+
import singularity.data.players.events.CreateSenderEvent;
810
import singularity.data.players.location.CosmicLocation;
911
import singularity.data.players.meta.SenderMeta;
1012
import singularity.data.players.permissions.SenderPermissions;
@@ -13,6 +15,7 @@
1315
import singularity.loading.Loadable;
1416
import singularity.modules.ModuleUtils;
1517
import singularity.text.UsersReplacements;
18+
import singularity.utils.MessageUtils;
1619
import singularity.utils.UserUtils;
1720

1821
import java.util.Date;
@@ -52,14 +55,19 @@ public void setIdentifier(String identifier) {
5255
private boolean proxyTouched;
5356

5457
@Setter
55-
private boolean loadComplete = false;
58+
private boolean fullyLoaded = false;
59+
60+
@Setter
61+
private boolean temporary = false;
5662

5763
@Setter
5864
private UsersReplacements replacements;
5965

60-
public CosmicSender(String uuid) {
66+
public CosmicSender(String uuid, boolean temporary) {
6167
this.uuid = uuid;
6268

69+
this.temporary = temporary;
70+
6371
this.firstJoinDate = new Date();
6472
this.lastJoinDate = new Date();
6573

@@ -75,6 +83,10 @@ public CosmicSender(String uuid) {
7583
this.proxyTouched = Singularity.isProxy();
7684
}
7785

86+
public CosmicSender(String uuid) {
87+
this(uuid, false);
88+
}
89+
7890
public CosmicSender() {
7991
this(
8092
GivenConfigs.getMainConfig().getConsoleDiscriminator()
@@ -96,10 +108,12 @@ public void setCurrentNameAsProper() {
96108
setCurrentName(Singularity.getInstance().getUserManager().getUsername(getUuid()));
97109
}
98110

99-
public void save() {
100-
// Do nothing
111+
@Override
112+
public void save(boolean async) {
113+
UserUtils.saveSender(this, async);
101114
}
102115

116+
@Override
103117
public void load() {
104118
if (this instanceof CosmicPlayer) {
105119
UserUtils.loadPlayer((CosmicPlayer) this);
@@ -109,10 +123,17 @@ public void load() {
109123
UserUtils.loadSender(this);
110124
}
111125

126+
@Override
112127
public void unload() {
113128
UserUtils.unloadSender(this);
114129
}
115130

131+
@Override
132+
public void saveAndUnload(boolean async) {
133+
save(async);
134+
unload();
135+
}
136+
116137
public boolean isLoaded() {
117138
return UserUtils.isLoaded(getUuid());
118139
}
@@ -122,11 +143,16 @@ public void ensureLoaded() {
122143
}
123144

124145
@Override
125-
public CosmicPlayer augment(CompletableFuture<Optional<CosmicPlayer>> future) {
126-
loadComplete = false;
146+
public CosmicPlayer augment(CompletableFuture<Optional<CosmicPlayer>> future, boolean isGet) {
147+
fullyLoaded = false;
148+
149+
future.whenComplete((optional, error) -> {
150+
if (error != null) {
151+
MessageUtils.logWarning("Failed to augment CosmicSender for UUID: " + getUuid(), error);
152+
this.fullyLoaded = true;
153+
return;
154+
}
127155

128-
CompletableFuture.runAsync(() -> {
129-
Optional<CosmicPlayer> optional = future.join();
130156
if (optional.isPresent()) {
131157
CosmicPlayer sender = optional.get();
132158

@@ -143,10 +169,23 @@ public CosmicPlayer augment(CompletableFuture<Optional<CosmicPlayer>> future) {
143169
augmentMore(sender);
144170

145171
setCurrentNameAsProper(); // might need to be forced... need to check this...
172+
} else {
173+
if (! isGet) {
174+
this.temporary = false;
175+
if (this instanceof CosmicPlayer) new CreatePlayerEvent((CosmicPlayer) this).fire();
176+
else new CreateSenderEvent(this).fire();
177+
MessageUtils.logInfo("Created new CosmicPlayer for UUID: " + getUuid() + " (Console: " + isConsole() + ")");
178+
179+
this.save();
180+
} else {
181+
unload();
182+
fullyLoaded = true;
183+
return;
184+
}
146185
}
147186

148187
ensureLoaded();
149-
loadComplete = true;
188+
fullyLoaded = true;
150189
});
151190

152191
return (CosmicPlayer) this;

0 commit comments

Comments
 (0)