From 1104b82830c7058e017ef9a0d85874b81daa2708 Mon Sep 17 00:00:00 2001 From: tastybento Date: Sun, 26 Nov 2023 19:19:05 -0800 Subject: [PATCH 01/15] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ca60463..dd4aa1e 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ Created and maintained by [tastybento](https://github.com/tastybento). Each island has a bank account. Players can deposit or withdraw money from their regular economy accounts into the island account where it is pooled. The island owner can decide which rank of team member can access the account via the settings menu. There is a `baltop` command that players can use to see which island has the most, or least money. + + ### Features * Save or spend money as an island team From 1005cddac84d2eabff4c29a0e20cd136ffc52322 Mon Sep 17 00:00:00 2001 From: RUYSUE <164722481+RUYSUE@users.noreply.github.com> Date: Sun, 9 Jun 2024 00:42:44 +0800 Subject: [PATCH 02/15] Update zh-CN.yml --- src/main/resources/locales/zh-CN.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/resources/locales/zh-CN.yml b/src/main/resources/locales/zh-CN.yml index 6be578b..523bb8f 100644 --- a/src/main/resources/locales/zh-CN.yml +++ b/src/main/resources/locales/zh-CN.yml @@ -1,7 +1,7 @@ --- bank: admin: - description: 岛岸管理员命令 + description: 岛屿银行管理员命令 give: parameters: "<玩家> <金额>" description: 增加金额到玩家的岛屿账户 @@ -33,6 +33,7 @@ bank: description: 将金额存入您的岛屿账户 parameters: "<金额>" success: "&成功!您的新岛银行余额为[number]。" + alert: "&a [name]向岛屿银行存入了[number]。" errors: bank-error: "&c加载银行帐户信息时出错-请稍后重试" low-balance: "&c您的岛屿银行余额不够高!" @@ -65,6 +66,7 @@ bank: description: 从您的岛屿账户中提款 parameters: "<金额>" success: "&a成功!您的新岛银行余额为[number]。" + alert: "&a [name]从岛屿银行取出了[number]。" protection: flags: BANK_ACCESS: From 85f39c096d921352187ea819b2fcf61c15583475 Mon Sep 17 00:00:00 2001 From: ISOURA Date: Sat, 8 Jun 2024 16:57:56 +0000 Subject: [PATCH 03/15] Translate fr.yml via GitLocalize --- src/main/resources/locales/fr.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/resources/locales/fr.yml b/src/main/resources/locales/fr.yml index f9cf6fe..b77ec60 100644 --- a/src/main/resources/locales/fr.yml +++ b/src/main/resources/locales/fr.yml @@ -33,6 +33,7 @@ bank: description: déposer le montant sur votre compte insulaire parameters: "" success: "&a Succès! Le nouveau solde bancaire de votre île est de [number]." + alert: "&a [name] a déposé [number] à la banque de l'île." errors: bank-error: "&c Erreur lors du chargement des informations du compte bancaire - veuillez réessayer plus tard" @@ -70,6 +71,7 @@ bank: description: retirer le montant de votre compte insulaire parameters: "" success: "&a Succès! Le nouveau solde bancaire de votre île est de [number]." + alert: "&a [name] a retiré [number] de la banque de l'île." protection: flags: BANK_ACCESS: From 597ff0ff4cf7df3bb6d6a69dbfc8c85cdb65090e Mon Sep 17 00:00:00 2001 From: Kaepsis Date: Sat, 8 Jun 2024 16:58:26 +0000 Subject: [PATCH 04/15] Translate it.yml via GitLocalize --- src/main/resources/locales/it.yml | 42 +++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/resources/locales/it.yml diff --git a/src/main/resources/locales/it.yml b/src/main/resources/locales/it.yml new file mode 100644 index 0000000..9d6eccb --- /dev/null +++ b/src/main/resources/locales/it.yml @@ -0,0 +1,42 @@ +--- +bank: + admin: + description: comando di amministrazione per la banca dell'isola + give: + success: "&aFatto! Il saldo bancario dell'isola di [nome] è ora [numero]." + take: {} + balance: {} + set: + success: "&aIl bilancio di [name] è stato impostato su [number]." + statement: {} + balance: + description: mostra il bilancio della tua isola + island-balance: "&aIl bilancio dell'isola è [number]." + baltop: + description: mostra la classifica dei bilanci + description-syntax: "&d [number]" + name-syntax: "&d [name]" + title: I bilanci più alti + deposit: + description: deposita l'importo nella banca dell'isola + success: "&Fatto! Il tuo nuovo saldo bancario sull'isola è [number]." + alert: "&a[name] ha depositato [number] nella banca dell'isola." + errors: + low-balance: "&c Il saldo della tua isola non è abbastanza alto!" + statement: + balance: + description: "&6 [number]" + deposit: Deposito + give: Regalo amministratore + syntax: | + &9 [date] + &9 [time] + &7 [name] + &6 [number] + user: {} + withdraw: + success: "&Fatto! Il tuo nuovo saldo bancario sull'isola è [number]." + alert: "&un [name] ritirò [number] dalla banca dell'isola." +protection: + flags: + BANK_ACCESS: {} From 62af8a979fbdf1e2ceff2da5a9764efcace41138 Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Sat, 8 Jun 2024 16:58:27 +0000 Subject: [PATCH 05/15] Translate it.yml via GitLocalize --- src/main/resources/locales/it.yml | 49 +++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/src/main/resources/locales/it.yml b/src/main/resources/locales/it.yml index 9d6eccb..6824d43 100644 --- a/src/main/resources/locales/it.yml +++ b/src/main/resources/locales/it.yml @@ -3,40 +3,79 @@ bank: admin: description: comando di amministrazione per la banca dell'isola give: + parameters: " " + description: aggiungi importo al conto dell'isola del giocatore success: "&aFatto! Il saldo bancario dell'isola di [nome] è ora [numero]." - take: {} - balance: {} + take: + parameters: " " + description: preleva l'importo dal conto dell'isola del giocatore + balance: + parameters: "" + description: visualizzare il saldo del conto dell'isola del giocatore set: + parameters: " " + description: imposta l'importo nel conto dell'isola del giocatore success: "&aIl bilancio di [name] è stato impostato su [number]." - statement: {} + statement: + parameters: "" + description: visualizza l'estratto conto dell'isola per il giocatore balance: description: mostra il bilancio della tua isola island-balance: "&aIl bilancio dell'isola è [number]." baltop: description: mostra la classifica dei bilanci description-syntax: "&d [number]" + highest: Ordina per più alto + lowest: Ordina per più basso name-syntax: "&d [name]" title: I bilanci più alti deposit: description: deposita l'importo nella banca dell'isola + parameters: "" success: "&Fatto! Il tuo nuovo saldo bancario sull'isola è [number]." alert: "&a[name] ha depositato [number] nella banca dell'isola." errors: + bank-error: "&c Errore durante il caricamento dei dati del conto bancario: riprova + più tardi" low-balance: "&c Il saldo della tua isola non è abbastanza alto!" + too-low: "&c Il saldo dell'isola è troppo basso." + must-be-a-number: "&c L'importo deve essere un numero" + no-rank: "&c Il tuo grado non è sufficientemente alto per utilizzare la banca." + too-much: "&c Non hai quell'importo da depositare." + value-must-be-positive: "&c L'importo deve essere positivo." + scientific: "&c La notazione scientifica non è supportata." + too-long: "&c Il valore deve essere inferiore a 10 cifre" statement: balance: + name: "&9 Saldo:" description: "&6 [number]" deposit: Deposito + description: mostra la cronologia della banca della tua isola give: Regalo amministratore + interest: Interesse + latest: Ordina per più recente + oldest: Ordina per più vecchio + set: Impostazione amministratore syntax: | &9 [date] &9 [time] &7 [name] &6 [number] - user: {} + take: Presa amministrativa + title: Cronologia del conto + unknown: Tipo sconosciuto + withdrawal: Ritiro + user: + description: comando della banca dell'isola withdraw: + description: prelevare l'importo dal conto dell'isola + parameters: "" success: "&Fatto! Il tuo nuovo saldo bancario sull'isola è [number]." alert: "&un [name] ritirò [number] dalla banca dell'isola." protection: flags: - BANK_ACCESS: {} + BANK_ACCESS: + description: |- + &f Consenti accesso a + &f la banca dell'isola + name: Accesso alla banca dell'isola From c153228b1d5bffdc0841c3f7df38189568c36fb0 Mon Sep 17 00:00:00 2001 From: dawnTak Date: Sat, 8 Jun 2024 16:59:37 +0000 Subject: [PATCH 06/15] Translate zh-CN.yml via GitLocalize --- src/main/resources/locales/zh-CN.yml | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/src/main/resources/locales/zh-CN.yml b/src/main/resources/locales/zh-CN.yml index 6be578b..be2dcd7 100644 --- a/src/main/resources/locales/zh-CN.yml +++ b/src/main/resources/locales/zh-CN.yml @@ -1,64 +1,49 @@ --- bank: admin: - description: 岛岸管理员命令 + description: " 岛屿银行的管理员命令" give: parameters: "<玩家> <金额>" - description: 增加金额到玩家的岛屿账户 - success: "&a成功! [name] 的岛屿银行余额现在是 [number]。" + success: "&a成功! [name] 的岛屿银行余额现在是 [number]" take: parameters: "<玩家> <金额>" - description: 从玩家的岛屿账户中提取金额 balance: parameters: "<玩家>" description: 查看玩家的岛屿账户余额 set: parameters: "<玩家> <金额>" - description: 在玩家的岛屿账户中设置金额 - success: "&a [name]的帐户设置为[number]。" + description: 设置玩家岛屿账户的金额 + success: "&a [name] 的帐户金额设置为[number]" statement: parameters: "<玩家>" - description: 查看玩家的岛上银行对帐单 balance: description: 显示您的岛屿银行余额 island-balance: "&a岛银行的余额为[number]。" baltop: description: 显示余额排名 description-syntax: "&d[number]" - highest: 按最高排序 - lowest: 最低排序 name-syntax: "&d[name]" title: 最高余额 deposit: description: 将金额存入您的岛屿账户 parameters: "<金额>" - success: "&成功!您的新岛银行余额为[number]。" errors: bank-error: "&c加载银行帐户信息时出错-请稍后重试" - low-balance: "&c您的岛屿银行余额不够高!" - too-low: "&c 岛平衡太低。" must-be-a-number: "&c金额必须是数字" no-rank: "&c您的等级不够高,无法使用银行。" - too-much: "&c您没有那笔存款。" - value-must-be-positive: "&c金额必须为正。" scientific: "&c 不支持科学记数法。" too-long: "&c 值必须小于 10 位" statement: balance: name: "&9 银行存款余额:" description: "&6 [number]" - deposit: 存款 description: 显示您的岛屿银行历史 - give: 管理员给 interest: 银行利息 latest: 按最新排序 oldest: 按最旧排序 - set: 管理员集 syntax: "&9 [date] \n&9 [time] \n&7 [name]\n &6 [number]" - take: 管理员请 title: 账户历史 unknown: 未知类型 - withdrawal: 退出 user: description: 岛屿银行命令 withdraw: @@ -67,6 +52,4 @@ bank: success: "&a成功!您的新岛银行余额为[number]。" protection: flags: - BANK_ACCESS: - description: "&f允许进入岛岸" - name: 岛银行访问 + BANK_ACCESS: {} From a9cb7f1a3a317d83c25ca48ed6f14f20efceafa5 Mon Sep 17 00:00:00 2001 From: RUYSUE Date: Sat, 8 Jun 2024 16:59:38 +0000 Subject: [PATCH 07/15] Translate zh-CN.yml via GitLocalize --- src/main/resources/locales/zh-CN.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/resources/locales/zh-CN.yml b/src/main/resources/locales/zh-CN.yml index be2dcd7..001e4c6 100644 --- a/src/main/resources/locales/zh-CN.yml +++ b/src/main/resources/locales/zh-CN.yml @@ -4,9 +4,11 @@ bank: description: " 岛屿银行的管理员命令" give: parameters: "<玩家> <金额>" + description: 向玩家的空岛银行增加金钱 success: "&a成功! [name] 的岛屿银行余额现在是 [number]" take: parameters: "<玩家> <金额>" + description: 从玩家的岛屿账户中取出金钱 balance: parameters: "<玩家>" description: 查看玩家的岛屿账户余额 @@ -16,40 +18,57 @@ bank: success: "&a [name] 的帐户金额设置为[number]" statement: parameters: "<玩家>" + description: 查看玩家的岛上银行帐单 balance: description: 显示您的岛屿银行余额 island-balance: "&a岛银行的余额为[number]。" baltop: description: 显示余额排名 description-syntax: "&d[number]" + highest: 降序排序 + lowest: 升序排序 name-syntax: "&d[name]" title: 最高余额 deposit: description: 将金额存入您的岛屿账户 parameters: "<金额>" + success: "&a成功!您的新岛银行余额为[number]。" + alert: "&a [name]向岛屿银行存入了[number]." errors: bank-error: "&c加载银行帐户信息时出错-请稍后重试" + low-balance: "&c您的岛屿银行余额不足!" + too-low: "&c 空岛余额太少" must-be-a-number: "&c金额必须是数字" no-rank: "&c您的等级不够高,无法使用银行。" + too-much: "&c您没有足够的钱来存入。" + value-must-be-positive: "&c金额必须为正数。" scientific: "&c 不支持科学记数法。" too-long: "&c 值必须小于 10 位" statement: balance: name: "&9 银行存款余额:" description: "&6 [number]" + deposit: 存入 description: 显示您的岛屿银行历史 + give: 管理员给予 interest: 银行利息 latest: 按最新排序 oldest: 按最旧排序 + set: 管理员设置 syntax: "&9 [date] \n&9 [time] \n&7 [name]\n &6 [number]" + take: 管理员拿走 title: 账户历史 unknown: 未知类型 + withdrawal: 取出 user: description: 岛屿银行命令 withdraw: description: 从您的岛屿账户中提款 parameters: "<金额>" success: "&a成功!您的新岛银行余额为[number]。" + alert: "&a [name]从空岛银行取出了[number] " protection: flags: - BANK_ACCESS: {} + BANK_ACCESS: + description: "&f允许使用空岛银行" + name: 空岛银行权限 From b6bfab5cfa014df2be400458d1e8228653faf75e Mon Sep 17 00:00:00 2001 From: tastybento Date: Tue, 2 Jul 2024 09:38:45 -0700 Subject: [PATCH 08/15] Comments --- src/main/java/world/bentobox/bank/data/BankAccounts.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/world/bentobox/bank/data/BankAccounts.java b/src/main/java/world/bentobox/bank/data/BankAccounts.java index 470ac46..83b40fa 100644 --- a/src/main/java/world/bentobox/bank/data/BankAccounts.java +++ b/src/main/java/world/bentobox/bank/data/BankAccounts.java @@ -27,12 +27,18 @@ public class BankAccounts implements DataObject { @Expose private Double balance; + /** + * The balance in {@link Money} + */ @Expose private Money moneyBalance; @Expose private final Map history = new TreeMap<>(); + /** + * Timestamp for when interest was last paid + */ @Expose private Long interestLastPaid; From 030bfa5e2aba7d48348e08de13ece6a49be84c4e Mon Sep 17 00:00:00 2001 From: tastybento Date: Tue, 2 Jul 2024 09:39:07 -0700 Subject: [PATCH 09/15] Version 1.8.0 --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 9d65339..4e244ec 100644 --- a/pom.xml +++ b/pom.xml @@ -59,14 +59,14 @@ 2.0.9 - 1.20.2-R0.1-SNAPSHOT - 2.0.0-SNAPSHOT + 1.20.6-R0.1-SNAPSHOT + 2.4.0-SNAPSHOT ${build.version}-SNAPSHOT -LOCAL - 1.7.1 + 1.8.0 BentoBoxWorld_Bank bentobox-world https://sonarcloud.io From 64edec4af0441908195ae95580ebc77da7727aac Mon Sep 17 00:00:00 2001 From: tastybento Date: Tue, 2 Jul 2024 09:39:22 -0700 Subject: [PATCH 10/15] Return pladdon that was made --- src/main/java/world/bentobox/bank/BankPladdon.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/world/bentobox/bank/BankPladdon.java b/src/main/java/world/bentobox/bank/BankPladdon.java index 19b0dc8..38d03b3 100644 --- a/src/main/java/world/bentobox/bank/BankPladdon.java +++ b/src/main/java/world/bentobox/bank/BankPladdon.java @@ -9,10 +9,13 @@ * */ public class BankPladdon extends Pladdon { + private Addon addon; @Override public Addon getAddon() { - return new Bank(); + if (addon == null) { + addon = new Bank(); + } + return addon; } - } From 35ab06d527d89ae1172ce5c23fa967635a36935c Mon Sep 17 00:00:00 2001 From: tastybento Date: Tue, 2 Jul 2024 11:09:19 -0700 Subject: [PATCH 11/15] Fix tests. --- src/test/java/world/bentobox/bank/BankTest.java | 3 +-- .../bank/commands/admin/AdminBalanceCommandTest.java | 5 ++++- .../bentobox/bank/commands/user/BalanceCommandTest.java | 5 ++++- .../bentobox/bank/commands/user/DepositCommandTest.java | 5 ++++- .../bentobox/bank/commands/user/WithdrawCommandTest.java | 5 ++++- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/test/java/world/bentobox/bank/BankTest.java b/src/test/java/world/bentobox/bank/BankTest.java index 475f325..4816c19 100644 --- a/src/test/java/world/bentobox/bank/BankTest.java +++ b/src/test/java/world/bentobox/bank/BankTest.java @@ -135,6 +135,7 @@ public static void beforeClass() throws IOException { @Before public void setUp() throws Exception { + PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS); // Set up plugin Whitebox.setInternalState(BentoBox.class, "instance", plugin); @@ -169,7 +170,6 @@ public void setUp() throws Exception { when(user.getTranslation(anyString())).thenAnswer((Answer) invocation -> invocation.getArgument(0, String.class)); // Server - PowerMockito.mockStatic(Bukkit.class); Server server = mock(Server.class); when(Bukkit.getServer()).thenReturn(server); when(Bukkit.getLogger()).thenReturn(Logger.getAnonymousLogger()); @@ -204,7 +204,6 @@ public void setUp() throws Exception { // Bukkit - PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS); when(Bukkit.getScheduler()).thenReturn(scheduler); ItemMeta meta = mock(ItemMeta.class); ItemFactory itemFactory = mock(ItemFactory.class); diff --git a/src/test/java/world/bentobox/bank/commands/admin/AdminBalanceCommandTest.java b/src/test/java/world/bentobox/bank/commands/admin/AdminBalanceCommandTest.java index a15397e..7ecddf3 100644 --- a/src/test/java/world/bentobox/bank/commands/admin/AdminBalanceCommandTest.java +++ b/src/test/java/world/bentobox/bank/commands/admin/AdminBalanceCommandTest.java @@ -13,12 +13,14 @@ import java.util.Collections; +import org.bukkit.Bukkit; import org.bukkit.World; import org.eclipse.jdt.annotation.Nullable; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.Mockito; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -45,7 +47,7 @@ * */ @RunWith(PowerMockRunner.class) -@PrepareForTest({BentoBox.class, Util.class}) +@PrepareForTest({ BentoBox.class, Util.class, Bukkit.class }) public class AdminBalanceCommandTest { @Mock @@ -73,6 +75,7 @@ public class AdminBalanceCommandTest { @Before public void setUp() { + PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS); // Set up plugin BentoBox plugin = mock(BentoBox.class); Whitebox.setInternalState(BentoBox.class, "instance", plugin); diff --git a/src/test/java/world/bentobox/bank/commands/user/BalanceCommandTest.java b/src/test/java/world/bentobox/bank/commands/user/BalanceCommandTest.java index bd5d754..d214b8e 100644 --- a/src/test/java/world/bentobox/bank/commands/user/BalanceCommandTest.java +++ b/src/test/java/world/bentobox/bank/commands/user/BalanceCommandTest.java @@ -12,12 +12,14 @@ import java.util.Collections; +import org.bukkit.Bukkit; import org.bukkit.World; import org.eclipse.jdt.annotation.Nullable; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.Mockito; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -43,7 +45,7 @@ * */ @RunWith(PowerMockRunner.class) -@PrepareForTest({BentoBox.class, Util.class}) +@PrepareForTest({ BentoBox.class, Util.class, Bukkit.class }) public class BalanceCommandTest { @Mock @@ -70,6 +72,7 @@ public class BalanceCommandTest { */ @Before public void setUp() { + PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS); // Set up plugin BentoBox plugin = mock(BentoBox.class); Whitebox.setInternalState(BentoBox.class, "instance", plugin); diff --git a/src/test/java/world/bentobox/bank/commands/user/DepositCommandTest.java b/src/test/java/world/bentobox/bank/commands/user/DepositCommandTest.java index 2832d0f..6653cb8 100644 --- a/src/test/java/world/bentobox/bank/commands/user/DepositCommandTest.java +++ b/src/test/java/world/bentobox/bank/commands/user/DepositCommandTest.java @@ -17,12 +17,14 @@ import java.util.UUID; import java.util.concurrent.CompletableFuture; +import org.bukkit.Bukkit; import org.bukkit.World; import org.eclipse.jdt.annotation.Nullable; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.Mockito; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -50,7 +52,7 @@ * */ @RunWith(PowerMockRunner.class) -@PrepareForTest({BentoBox.class, Util.class}) +@PrepareForTest({ BentoBox.class, Util.class, Bukkit.class }) public class DepositCommandTest { /** @@ -81,6 +83,7 @@ public class DepositCommandTest { */ @Before public void setUp() { + PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS); // Set up plugin BentoBox plugin = mock(BentoBox.class); Whitebox.setInternalState(BentoBox.class, "instance", plugin); diff --git a/src/test/java/world/bentobox/bank/commands/user/WithdrawCommandTest.java b/src/test/java/world/bentobox/bank/commands/user/WithdrawCommandTest.java index 90c48c5..96d79f4 100644 --- a/src/test/java/world/bentobox/bank/commands/user/WithdrawCommandTest.java +++ b/src/test/java/world/bentobox/bank/commands/user/WithdrawCommandTest.java @@ -16,12 +16,14 @@ import java.util.UUID; import java.util.concurrent.CompletableFuture; +import org.bukkit.Bukkit; import org.bukkit.World; import org.eclipse.jdt.annotation.Nullable; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.Mockito; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -47,7 +49,7 @@ * */ @RunWith(PowerMockRunner.class) -@PrepareForTest({BentoBox.class, Util.class}) +@PrepareForTest({ BentoBox.class, Util.class, Bukkit.class }) public class WithdrawCommandTest { /** @@ -79,6 +81,7 @@ public class WithdrawCommandTest { */ @Before public void setUp() { + PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS); // Set up plugin BentoBox plugin = mock(BentoBox.class); Whitebox.setInternalState(BentoBox.class, "instance", plugin); From aa6da34af36be298980839e57e1e71b9b4354358 Mon Sep 17 00:00:00 2001 From: tastybento Date: Fri, 5 Jul 2024 15:56:30 -0700 Subject: [PATCH 12/15] Move Github build to Java 21 --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3b032cc..d66a13e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,11 +13,11 @@ jobs: - uses: actions/checkout@v2 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - name: Set up JDK 16 + - name: Set up JDK 21 uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: '17' + java-version: '21' - name: Cache SonarCloud packages uses: actions/cache@v2 with: From 672a5b93b125c62a5c64730e61d7572e09a6f480 Mon Sep 17 00:00:00 2001 From: tastybento Date: Fri, 4 Oct 2024 23:47:50 -0700 Subject: [PATCH 13/15] Update to latest API and fix tests --- .github/.gitignore | 1 + pom.xml | 2 +- .../java/world/bentobox/bank/BankManagerTest.java | 3 ++- src/test/java/world/bentobox/bank/BankTest.java | 3 ++- src/test/java/world/bentobox/bank/PhManagerTest.java | 11 +++++++---- 5 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 .github/.gitignore diff --git a/.github/.gitignore b/.github/.gitignore new file mode 100644 index 0000000..9bb88d3 --- /dev/null +++ b/.github/.gitignore @@ -0,0 +1 @@ +/.DS_Store diff --git a/pom.xml b/pom.xml index 4e244ec..45b270d 100644 --- a/pom.xml +++ b/pom.xml @@ -60,7 +60,7 @@ 2.0.9 1.20.6-R0.1-SNAPSHOT - 2.4.0-SNAPSHOT + 2.5.4 ${build.version}-SNAPSHOT diff --git a/src/test/java/world/bentobox/bank/BankManagerTest.java b/src/test/java/world/bentobox/bank/BankManagerTest.java index bb1f28c..2ed1271 100644 --- a/src/test/java/world/bentobox/bank/BankManagerTest.java +++ b/src/test/java/world/bentobox/bank/BankManagerTest.java @@ -56,7 +56,7 @@ * */ @RunWith(PowerMockRunner.class) -@PrepareForTest({Bukkit.class, BentoBox.class, DatabaseSetup.class, Util.class}) +@PrepareForTest({ Bukkit.class, BentoBox.class, DatabaseSetup.class, Util.class, IslandsManager.class }) public class BankManagerTest { @Mock @@ -105,6 +105,7 @@ public void setUp() { Whitebox.setInternalState(BentoBox.class, "instance", plugin); PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS); + PowerMockito.mockStatic(IslandsManager.class, Mockito.RETURNS_MOCKS); // The database type has to be created one line before the thenReturn() to work! DatabaseType value = DatabaseType.JSON; when(plugin.getSettings()).thenReturn(pluginSettings); diff --git a/src/test/java/world/bentobox/bank/BankTest.java b/src/test/java/world/bentobox/bank/BankTest.java index 4816c19..303b7aa 100644 --- a/src/test/java/world/bentobox/bank/BankTest.java +++ b/src/test/java/world/bentobox/bank/BankTest.java @@ -68,7 +68,7 @@ @SuppressWarnings("deprecation") @RunWith(PowerMockRunner.class) -@PrepareForTest({Bukkit.class, BentoBox.class, User.class}) +@PrepareForTest({ Bukkit.class, BentoBox.class, User.class, IslandsManager.class }) public class BankTest { private static File jFile; @@ -136,6 +136,7 @@ public static void beforeClass() throws IOException { @Before public void setUp() throws Exception { PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS); + PowerMockito.mockStatic(IslandsManager.class, Mockito.RETURNS_MOCKS); // Set up plugin Whitebox.setInternalState(BentoBox.class, "instance", plugin); diff --git a/src/test/java/world/bentobox/bank/PhManagerTest.java b/src/test/java/world/bentobox/bank/PhManagerTest.java index fe03767..2158e29 100644 --- a/src/test/java/world/bentobox/bank/PhManagerTest.java +++ b/src/test/java/world/bentobox/bank/PhManagerTest.java @@ -25,6 +25,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.Mockito; +import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -33,6 +35,7 @@ import world.bentobox.bentobox.api.addons.AddonDescription; import world.bentobox.bentobox.api.addons.GameModeAddon; import world.bentobox.bentobox.api.user.User; +import world.bentobox.bentobox.database.DatabaseSetup; import world.bentobox.bentobox.database.objects.Island; import world.bentobox.bentobox.hooks.VaultHook; import world.bentobox.bentobox.managers.IslandsManager; @@ -44,7 +47,7 @@ * */ @RunWith(PowerMockRunner.class) -@PrepareForTest({Bukkit.class, BentoBox.class}) +@PrepareForTest({ Bukkit.class, BentoBox.class, DatabaseSetup.class, IslandsManager.class }) public class PhManagerTest { // Class under test @@ -73,12 +76,11 @@ public class PhManagerTest { @Mock private PlayersManager plm; - - /** - */ @Before public void setUp() { + PowerMockito.mockStatic(IslandsManager.class, Mockito.RETURNS_MOCKS); + AddonDescription desc = new AddonDescription.Builder("main", "AcidIsland", "1.0.2").build(); when(gm.getDescription()).thenReturn(desc); when(addon.getPlugin()).thenReturn(plugin); @@ -91,6 +93,7 @@ public void setUp() { when(addon.getVault()).thenReturn(vh); when(addon.getIslands()).thenReturn(im); when(user.getLocation()).thenReturn(location); + when(im.getIslandAt(eq(location))).thenReturn(Optional.of(island)); when(bm.getBalance(eq(island))).thenReturn(new Money(1234.56D)); map = new LinkedHashMap<>(); From ff963e13dfb91ee513115f64fe5b2f9252c52bc7 Mon Sep 17 00:00:00 2001 From: tastybento Date: Fri, 4 Oct 2024 23:50:54 -0700 Subject: [PATCH 14/15] Update GitHub build script --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d66a13e..dd4b2f1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,22 +10,22 @@ jobs: name: Build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - name: Set up JDK 21 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: distribution: 'adopt' java-version: '21' - name: Cache SonarCloud packages - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.sonar/cache key: ${{ runner.os }}-sonar restore-keys: ${{ runner.os }}-sonar - name: Cache Maven packages - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} From 4daba52d3852d3e779e312cd746d3ff87091bf1c Mon Sep 17 00:00:00 2001 From: tastybento Date: Fri, 4 Oct 2024 23:52:33 -0700 Subject: [PATCH 15/15] Update uses: actions/upload-artifact@v3 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dd4b2f1..76d9ee6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar - run: mkdir staging && cp target/*.jar staging - name: Save artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: Package path: staging \ No newline at end of file