Skip to content

Commit 34ef7fa

Browse files
authored
Merge pull request #25 from Streamline-Essentials/dev
Auto PR: Merge dev into master
2 parents 681c8f8 + 1bf5af5 commit 34ef7fa

16 files changed

Lines changed: 299 additions & 56 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ public static ConcurrentSkipListMap<String, ProxiedPlayer> getPlayersByUUID() {
353353

354354
@Override
355355
public Logger getLoggerLogger() {
356-
return getLogger();
356+
return getProxy().getLogger();
357357
}
358358

359359
@Override

dependencies.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,21 @@ ext {
55
"org.pf4j:pf4j:3.10.0",
66
"commons-codec:commons-codec:1.5",
77
"ch.qos.logback:logback-classic:1.5.6",
8+
'redis.clients:jedis:6.0.0',
89
]
910
SHADOW = [
1011
"com.github.ben-manes.caffeine:caffeine:3.1.8",
1112
"com.github.Server-Utilities:TheBase:master-SNAPSHOT",
1213
"org.pf4j:pf4j:3.10.0",
1314
"commons-codec:commons-codec:1.5",
1415
"ch.qos.logback:logback-classic:1.5.6",
16+
'redis.clients:jedis:6.0.0',
1517
]
1618
ANNO = [
1719
"com.github.ben-manes.caffeine:caffeine:3.1.8",
1820
"com.github.Server-Utilities:TheBase:master-SNAPSHOT",
19-
"org.pf4j:pf4j:3.10.0"
21+
"org.pf4j:pf4j:3.10.0",
22+
'redis.clients:jedis:6.0.0',
2023
]
2124
COMP_ONLY = [
2225
]

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

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -274,13 +274,7 @@ public Singularity(String identifier, S platform, U userManager, M messenger, IC
274274
public void setupLogger() {
275275
if (getPlatform().hasLoggerLogger()) {
276276
java.util.logging.Logger rootLogger = getPlatform().getLoggerLogger();
277-
while (rootLogger.getParent() != null) {
278-
rootLogger = rootLogger.getParent();
279-
}
280-
// Remove existing handlers to avoid duplicates (optional)
281-
// for (java.util.logging.Handler handler : rootLogger.getHandlers()) {
282-
// rootLogger.removeHandler(handler);
283-
// }
277+
284278
// Add the custom handler
285279
CosmicLogHandler handler = new CosmicLogHandler();
286280
rootLogger.addHandler(handler);

singularity-api/src/main/java/singularity/configs/given/GivenConfigs.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import singularity.database.ConnectorSet;
99
import singularity.database.CoreDBOperator;
1010
import singularity.database.servers.SavedServer;
11+
import singularity.redis.RedisClient;
1112
import singularity.utils.UserUtils;
1213

1314
import java.io.File;
@@ -23,19 +24,25 @@ public class GivenConfigs {
2324
private static DatabaseConfigHandler databaseConfig;
2425
@Getter @Setter
2526
private static ServerConfigHandler serverConfig;
27+
@Getter @Setter
28+
private static RedisConfigHandler redisConfig;
2629

2730
@Getter @Setter
2831
private static File punishmentFolder;
2932

3033
@Getter @Setter
3134
private static CoreDBOperator mainDatabase;
3235

36+
@Getter @Setter
37+
private static RedisClient redisClient;
38+
3339
public static void init() {
3440
setMainConfig(new MainConfigHandler());
3541
setMainMessages(new MainMessagesHandler());
3642
setWhitelistConfig(new WhitelistConfig());
3743
setDatabaseConfig(new DatabaseConfigHandler());
3844
setServerConfig(new ServerConfigHandler());
45+
setRedisConfig(new RedisConfigHandler());
3946

4047
try {
4148
ConnectorSet connectorSet = getDatabaseConfig().getConnectorSet();
@@ -46,6 +53,12 @@ public static void init() {
4653
} catch (Exception e) {
4754
e.printStackTrace();
4855
}
56+
57+
try {
58+
setRedisClient(new RedisClient());
59+
} catch (Exception e) {
60+
e.printStackTrace();
61+
}
4962
}
5063

5164
public static void ensureFolders() {
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package singularity.configs.given;
2+
3+
import gg.drak.thebase.storage.resources.flat.simple.SimpleConfiguration;
4+
import lombok.Getter;
5+
import lombok.Setter;
6+
import singularity.Singularity;
7+
8+
@Getter @Setter
9+
public class RedisConfigHandler extends SimpleConfiguration {
10+
public RedisConfigHandler() {
11+
super("redis-config.yml", Singularity.getInstance(), true);
12+
}
13+
14+
@Override
15+
public void init() {
16+
getHost();
17+
getPort();
18+
getUsername();
19+
getPassword();
20+
}
21+
22+
// DATABASE
23+
24+
public String getHost() {
25+
reloadResource();
26+
27+
return getResource().getOrSetDefault("host", "localhost");
28+
}
29+
30+
public int getPort() {
31+
reloadResource();
32+
33+
return getResource().getOrSetDefault("port", 6379);
34+
}
35+
36+
public String getUsername() {
37+
reloadResource();
38+
39+
return getResource().getOrSetDefault("username", "default");
40+
}
41+
42+
public String getPassword() {
43+
reloadResource();
44+
45+
return getResource().getOrSetDefault("password", "password");
46+
}
47+
48+
public boolean isEnabled() {
49+
reloadResource();
50+
51+
return getResource().getOrSetDefault("enabled", false);
52+
}
53+
}

singularity-api/src/main/java/singularity/listeners/CosmicListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66

77
public class CosmicListener implements BaseEventListener {
88
public CosmicListener() {
9-
BaseEventHandler.bake(this, Singularity.getBaseModule());
9+
BaseEventHandler.bake(this, Singularity.getInstance());
1010
}
1111
}

singularity-api/src/main/java/singularity/logging/CosmicLogHandler.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,14 @@
22

33
import singularity.events.server.ServerLogTextEvent;
44

5-
import java.io.ByteArrayOutputStream;
65
import java.util.logging.LogRecord;
76
import java.util.logging.StreamHandler;
87
import java.util.logging.Level;
98

109
public class CosmicLogHandler extends StreamHandler {
11-
private final ByteArrayOutputStream baos;
12-
1310
public CosmicLogHandler() {
1411
// Set output to System.out by default
1512
super.setOutputStream(System.out);
16-
17-
this.baos = new ByteArrayOutputStream();
1813
}
1914

2015
@Override
@@ -44,18 +39,5 @@ public synchronized void publish(LogRecord record) {
4439
if (event.isCancelled()) {
4540
return;
4641
}
47-
48-
// Capture the log message
49-
String formattedMessage = getFormatter().format(record);
50-
baos.write(formattedMessage.getBytes(), 0, formattedMessage.length());
51-
52-
// Pass to parent handler for actual logging
53-
super.publish(record);
54-
super.flush(); // Ensure immediate output
55-
}
56-
57-
// Method to get captured logs
58-
public String getCapturedLogs() {
59-
return baos.toString();
6042
}
6143
}

singularity-api/src/main/java/singularity/logging/CosmicLogbackAppender.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,7 @@
55
import ch.qos.logback.core.AppenderBase;
66
import singularity.events.server.ServerLogTextEvent;
77

8-
import java.io.ByteArrayOutputStream;
9-
108
public class CosmicLogbackAppender extends AppenderBase<ILoggingEvent> {
11-
private final ByteArrayOutputStream baos = new ByteArrayOutputStream();
12-
139
@Override
1410
protected void append(ILoggingEvent eventObject) {
1511
Level level = eventObject.getLevel();
@@ -37,16 +33,5 @@ protected void append(ILoggingEvent eventObject) {
3733
if (event.isCancelled()) {
3834
return;
3935
}
40-
41-
// Capture the log message
42-
String message = eventObject.getFormattedMessage() + System.lineSeparator();
43-
baos.write(message.getBytes(), 0, message.length());
44-
45-
// Optionally forward to console
46-
System.out.print(message);
47-
}
48-
49-
public String getCapturedLogs() {
50-
return baos.toString();
5136
}
5237
}

singularity-api/src/main/java/singularity/logging/LogCollector.java

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,41 @@
99
import singularity.logging.timers.LogPopTimer;
1010
import singularity.utils.MessageUtils;
1111

12-
import java.util.concurrent.ConcurrentLinkedQueue;
1312
import java.util.concurrent.ConcurrentSkipListMap;
13+
import java.util.concurrent.atomic.AtomicInteger;
1414

1515
public class LogCollector extends CosmicListener {
1616
@Getter @Setter
17-
private static ConcurrentLinkedQueue<ServerLogTextEvent> logQueue = new ConcurrentLinkedQueue<>();
17+
private static ConcurrentSkipListMap<Integer, ServerLogTextEvent> logQueue = new ConcurrentSkipListMap<>();
18+
19+
@Getter @Setter
20+
private static AtomicInteger idCounter = new AtomicInteger(0);
21+
22+
public static int getNextId() {
23+
return idCounter.getAndIncrement();
24+
}
1825

1926
public static void addLog(ServerLogTextEvent event) {
20-
logQueue.add(event);
27+
getLogQueue().put(getNextId(), event);
2128
}
2229

2330
/**
2431
* Pops all logs from the queue and returns them as a map.
2532
* @return A map of log entries where the key is the log ID and the value is the log message.
2633
*/
2734
public static ConcurrentSkipListMap<Integer, ServerLogTextEvent> getLogs() {
28-
ConcurrentSkipListMap<Integer, ServerLogTextEvent> logs = new ConcurrentSkipListMap<>();
29-
int id = 0;
30-
31-
while (! logQueue.isEmpty()) {
32-
ServerLogTextEvent event = logQueue.poll();
33-
if (event != null) {
34-
logs.put(id++, event);
35-
}
36-
}
35+
ConcurrentSkipListMap<Integer, ServerLogTextEvent> logs = new ConcurrentSkipListMap<>(getLogQueue());
36+
37+
resetQueue();
3738

3839
return logs;
3940
}
4041

42+
public static void resetQueue() {
43+
clearLogs();
44+
setIdCounter(new AtomicInteger(0));
45+
}
46+
4147
public static void clearLogs() {
4248
logQueue.clear();
4349
}

singularity-api/src/main/java/singularity/logging/timers/LogPopTimer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
public class LogPopTimer extends AsyncTask {
77
public LogPopTimer() {
88
super(LogPopTimer::runTask, 0, 20 * 5); // Runs every 5 seconds
9+
queue();
10+
start();
911
}
1012

1113
public static void runTask(AsyncTask task) {

0 commit comments

Comments
 (0)