Skip to content

Commit b236de3

Browse files
committed
fix: fix server guard at public api
1 parent 18476f9 commit b236de3

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/main/java/es/superstrellaa/storagemanager/api/StorageManager.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import es.superstrellaa.storagemanager.api.schema.TableSchema;
55
import es.superstrellaa.storagemanager.internal.TableExecutor;
66
import es.superstrellaa.storagemanager.internal.cache.WriteCache;
7+
import es.superstrellaa.storagemanager.internal.middleware.ServerGuard;
78

89
import java.util.List;
910
import java.util.Map;
@@ -23,20 +24,23 @@ public final class StorageManager {
2324
* Registra una tabla en la base de datos
2425
*/
2526
public static void registerTable(TableSchema schema) {
27+
if (!ServerGuard.requireServer()) return;
2628
TableExecutor.createTable(schema);
2729
}
2830

2931
/**
3032
* Inserta datos (modo async con caché, recomendado para la mayoría de casos)
3133
*/
3234
public static void insert(String table, RowData data) {
35+
if (!ServerGuard.requireServer()) return;
3336
TableExecutor.insert(table, data, false);
3437
}
3538

3639
/**
3740
* Inserta datos inmediatamente sin usar caché (para datos críticos)
3841
*/
3942
public static void insertImmediate(String table, RowData data) {
43+
if (!ServerGuard.requireServer()) return;
4044
TableExecutor.insert(table, data, true);
4145
}
4246

@@ -45,34 +49,39 @@ public static void insertImmediate(String table, RowData data) {
4549
* Automáticamente hace flush de la caché antes de leer.
4650
*/
4751
public static List<RowData> select(String table, Map<String, Object> where) {
52+
if (!ServerGuard.requireServer()) return List.of();
4853
return TableExecutor.select(table, where);
4954
}
5055

5156
/**
5257
* Elimina datos (modo async con caché)
5358
*/
5459
public static void delete(String table, Map<String, Object> where) {
60+
if (!ServerGuard.requireServer()) return;
5561
TableExecutor.delete(table, where, false);
5662
}
5763

5864
/**
5965
* Elimina datos inmediatamente sin usar caché
6066
*/
6167
public static void deleteImmediate(String table, Map<String, Object> where) {
68+
if (!ServerGuard.requireServer()) return;
6269
TableExecutor.delete(table, where, true);
6370
}
6471

6572
/**
6673
* Fuerza el guardado de todas las operaciones pendientes de una tabla específica
6774
*/
6875
public static void flush(String table) {
76+
if (!ServerGuard.requireServer()) return;
6977
WriteCache.getInstance().flushTable(table);
7078
}
7179

7280
/**
7381
* Fuerza el guardado de todas las operaciones pendientes de todas las tablas
7482
*/
7583
public static void flushAll() {
84+
if (!ServerGuard.requireServer()) return;
7685
WriteCache.getInstance().flushAll();
7786
}
7887

src/main/java/es/superstrellaa/storagemanager/internal/middleware/ServerGuard.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@ public static void markServerReady() {
1414
serverReady = true;
1515
}
1616

17-
public static void requireServer() {
17+
public static boolean requireServer() {
1818
if (!serverReady) {
1919
if (FabricLoader.getInstance().getEnvironmentType() == EnvType.SERVER) {
2020
StorageManagerAPI.LOGGER.error("StorageManager API is not ready yet! This likely means that you are trying to use it during mod initialization, which is too early. Please wait until the server has started.");
2121
} else {
2222
StorageManagerAPI.LOGGER.warn("StorageManager API isn't meant for here! This likely means that you are trying to use it on the client side, which is not supported. Please only use the API on the server side.");
2323
}
24+
return false;
2425
}
26+
return true;
2527
}
2628

2729
private ServerGuard() {}

0 commit comments

Comments
 (0)