-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] 没有对 Economy 操作结果进行处理,返回值被忽略 #4
Comments
记录操作已经成功步骤反着来撤销就好了。 |
如果回滚的时候继续出现异常呢? |
那和 #4 (comment) 一样,应该检查一下 boolean |
if(!economy.depositPlayer().transactionSuccess()){
// Rollback
} |
我是想说,在这里检查是否成功意义不大,因为如果是因为经济实现的内部错误而导致调用失败,ECore 没有途径修复的,这个应当是具体的经济实现要处理的事。所以 ECore 只做了逻辑上必须需要的检查,比如扣钱的时候检查是否成功,这个是“功能”需要。 放到具体的情境来讲,如果 //rollback 的部分出现错误,ECore 还要继续处理嘛?要如何处理呢? |
rollback部分出现错误,则需要打印日志,记录出错事件。 |
transactionSuccess() 不是内部错误,Vault的定义是需要通知上层调用者这个失败是经济实现的“预期行为”。 例如Essentials Economy的最大最小限制,如果玩家超过了这个限制,那么这里就会返回一个false,economy.depositPlayer().errorMessage 会附上原因。 |
Ecore/src/main/java/cat/nyaa/ecore/EconomyCoreProvider.java
Lines 108 to 109 in 6cf99c5
应对 API 调用的结果进行处理,而非直接返回 SUCCESS。
The text was updated successfully, but these errors were encountered: