Revert minimizeJar due to bug & fix sync queries in non-main thread
This commit is contained in:
parent
a97ba3aee8
commit
dbce1d33f9
7
pom.xml
7
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>com.btk5h</groupId>
|
<groupId>com.btk5h</groupId>
|
||||||
<artifactId>skript-db</artifactId>
|
<artifactId>skript-db</artifactId>
|
||||||
<version>1.3.5</version>
|
<version>1.3.7</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
@ -19,8 +19,8 @@
|
|||||||
<url>https://jitpack.io</url>
|
<url>https://jitpack.io</url>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
<repository>
|
||||||
<id>commons-pool2</id>
|
<id>mvnrepository</id>
|
||||||
<url>https://mvnrepository.com/artifact/org.apache.commons/commons-pool2</url>
|
<url>https://mvnrepository.com</url>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
<repository>
|
||||||
<id>PaperMC</id>
|
<id>PaperMC</id>
|
||||||
@ -56,7 +56,6 @@
|
|||||||
<version>3.2.3</version>
|
<version>3.2.3</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||||
<minimizeJar>true</minimizeJar>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
|
@ -90,49 +90,32 @@ public class EffExecuteStatement extends Effect {
|
|||||||
Object locals = Variables.removeLocals(e);
|
Object locals = Variables.removeLocals(e);
|
||||||
|
|
||||||
//execute SQL statement
|
//execute SQL statement
|
||||||
CompletableFuture<Object> sql =
|
|
||||||
CompletableFuture.supplyAsync(() -> executeStatement(ds, baseVariable, query), threadPool);
|
CompletableFuture<Object> sql = null;
|
||||||
|
Object resources = null;
|
||||||
|
if (!sync) {
|
||||||
|
sql = CompletableFuture.supplyAsync(() -> executeStatement(ds, baseVariable, query), threadPool);
|
||||||
|
} else {
|
||||||
|
resources = executeStatement(ds, baseVariable, query);
|
||||||
|
}
|
||||||
|
|
||||||
//when SQL statement is completed
|
//when SQL statement is completed
|
||||||
boolean finalSync = sync;
|
boolean finalSync = sync;
|
||||||
sql.whenComplete((res, err) -> {
|
if (sql != null) {
|
||||||
if (err != null) {
|
sql.whenComplete((res, err) -> {
|
||||||
err.printStackTrace();
|
if (err != null) {
|
||||||
}
|
err.printStackTrace();
|
||||||
|
|
||||||
//handle last error syntax data
|
|
||||||
lastError = null;
|
|
||||||
if (res instanceof String) {
|
|
||||||
lastError = (String) res;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getNext() != null) {
|
|
||||||
//if local variables are present
|
|
||||||
//bring back local variables
|
|
||||||
|
|
||||||
//populate SQL data into variables
|
|
||||||
if (!(res instanceof String)) {
|
|
||||||
|
|
||||||
//also set variables in the sql query complete event
|
|
||||||
|
|
||||||
//TEMPORARILY DISABLED, AS THIS WOULD WORSEN PERFORMANCE OF THE QUERIES AND NOT BE USED BY MOST PEOPLE.
|
|
||||||
//I may add config option to enable this later?
|
|
||||||
|
|
||||||
//SQLQueryCompleteEvent event = new SQLQueryCompleteEvent(this.query.getSingle(e));
|
|
||||||
//((Map<String, Object>) res).forEach((name, value) -> setVariable(event, name, value));
|
|
||||||
//SkriptDB.getPlugin(SkriptDB.class).getServer().getPluginManager().callEvent(event);
|
|
||||||
}
|
}
|
||||||
if (isSync || finalSync) {
|
//handle last error syntax data
|
||||||
if (locals != null) {
|
lastError = null;
|
||||||
Variables.setLocalVariables(e, locals);
|
if (res instanceof String) {
|
||||||
}
|
lastError = (String) res;
|
||||||
if (!(res instanceof String)) {
|
}
|
||||||
((Map<String, Object>) res).forEach((name, value) -> setVariable(e, name, value));
|
if (getNext() != null) {
|
||||||
}
|
//if local variables are present
|
||||||
TriggerItem.walk(getNext(), e);
|
//bring back local variables
|
||||||
Variables.removeLocals(e);
|
//populate SQL data into variables
|
||||||
} else {
|
if (isSync || finalSync) {
|
||||||
Bukkit.getScheduler().runTask(SkriptDB.getInstance(), () -> {
|
|
||||||
if (locals != null) {
|
if (locals != null) {
|
||||||
Variables.setLocalVariables(e, locals);
|
Variables.setLocalVariables(e, locals);
|
||||||
}
|
}
|
||||||
@ -140,14 +123,45 @@ public class EffExecuteStatement extends Effect {
|
|||||||
((Map<String, Object>) res).forEach((name, value) -> setVariable(e, name, value));
|
((Map<String, Object>) res).forEach((name, value) -> setVariable(e, name, value));
|
||||||
}
|
}
|
||||||
TriggerItem.walk(getNext(), e);
|
TriggerItem.walk(getNext(), e);
|
||||||
//the line below is required to prevent memory leaks
|
|
||||||
//no functionality difference notice with it being removed from my test, but the memory gets filled with leaks
|
|
||||||
//so it must be kept
|
|
||||||
Variables.removeLocals(e);
|
Variables.removeLocals(e);
|
||||||
});
|
} else {
|
||||||
|
Bukkit.getScheduler().runTask(SkriptDB.getInstance(), () -> {
|
||||||
|
if (locals != null) {
|
||||||
|
Variables.setLocalVariables(e, locals);
|
||||||
|
}
|
||||||
|
if (!(res instanceof String)) {
|
||||||
|
((Map<String, Object>) res).forEach((name, value) -> setVariable(e, name, value));
|
||||||
|
}
|
||||||
|
TriggerItem.walk(getNext(), e);
|
||||||
|
//the line below is required to prevent memory leaks
|
||||||
|
//no functionality difference notice with it being removed from my test, but the memory gets filled with leaks
|
||||||
|
//so it must be kept
|
||||||
|
Variables.removeLocals(e);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
// sync executed SQL query, same as above, just sync
|
||||||
|
} else {
|
||||||
|
//handle last error syntax data
|
||||||
|
lastError = null;
|
||||||
|
if (resources instanceof String) {
|
||||||
|
lastError = (String) resources;
|
||||||
}
|
}
|
||||||
});
|
if (getNext() != null) {
|
||||||
|
//if local variables are present
|
||||||
|
//bring back local variables
|
||||||
|
//populate SQL data into variables
|
||||||
|
if (locals != null) {
|
||||||
|
Variables.setLocalVariables(e, locals);
|
||||||
|
}
|
||||||
|
if (!(resources instanceof String)) {
|
||||||
|
((Map<String, Object>) resources).forEach((name, value) -> setVariable(e, name, value));
|
||||||
|
}
|
||||||
|
TriggerItem.walk(getNext(), e);
|
||||||
|
Variables.removeLocals(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user