mirror of
https://github.com/AppleDash/SaneEconomy.git
synced 2024-09-29 06:57:31 +02:00
Make async transactions not crash the server
This commit is contained in:
parent
db8970ebbd
commit
e2cc0f3f03
@ -17,8 +17,7 @@ import java.math.BigDecimal;
|
|||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.Future;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by AppleDash on 6/13/2016.
|
* Created by AppleDash on 6/13/2016.
|
||||||
@ -144,6 +143,13 @@ public class EconomyManager {
|
|||||||
if (Bukkit.getServer().getPluginManager() != null) { // Bukkit.getServer().getPluginManager() == null from our JUnit tests.
|
if (Bukkit.getServer().getPluginManager() != null) { // Bukkit.getServer().getPluginManager() == null from our JUnit tests.
|
||||||
SaneEconomyTransactionEvent evt = new SaneEconomyTransactionEvent(transaction);
|
SaneEconomyTransactionEvent evt = new SaneEconomyTransactionEvent(transaction);
|
||||||
|
|
||||||
|
if (Bukkit.isPrimaryThread()) {
|
||||||
|
Bukkit.getServer().getPluginManager().callEvent(evt);
|
||||||
|
|
||||||
|
if (evt.isCancelled()) {
|
||||||
|
return new TransactionResult(transaction, TransactionResult.Status.CANCELLED_BY_PLUGIN);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
Future<SaneEconomyTransactionEvent> future = Bukkit.getServer().getScheduler().callSyncMethod(SaneEconomy.getInstance(), () -> {
|
Future<SaneEconomyTransactionEvent> future = Bukkit.getServer().getScheduler().callSyncMethod(SaneEconomy.getInstance(), () -> {
|
||||||
Bukkit.getServer().getPluginManager().callEvent(evt);
|
Bukkit.getServer().getPluginManager().callEvent(evt);
|
||||||
return evt;
|
return evt;
|
||||||
@ -156,6 +162,7 @@ public class EconomyManager {
|
|||||||
} catch (InterruptedException | ExecutionException e) {
|
} catch (InterruptedException | ExecutionException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Bukkit.getServer().getPluginManager().callEvent(evt);
|
Bukkit.getServer().getPluginManager().callEvent(evt);
|
||||||
|
Loading…
Reference in New Issue
Block a user