From 2d796471c564f333e37853584f484c00eadda288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20Marczink=C3=B3?= Date: Fri, 6 Dec 2019 17:30:38 +0100 Subject: [PATCH 01/13] Update hu.yml (#62) --- src/main/resources/locales/hu.yml | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/resources/locales/hu.yml b/src/main/resources/locales/hu.yml index cdb6be0..d43e5d5 100644 --- a/src/main/resources/locales/hu.yml +++ b/src/main/resources/locales/hu.yml @@ -8,26 +8,26 @@ warp: description: "Teleportálás a játékos teleport táblájához" parameters: warps: - deactivate: "&cRégi teleport tábla deaktiválva!" + deactivate: "&c Régi teleport tábla deaktiválva!" error: - does-not-exist: "&cAjjaj! Ez a teleport nem létezik!" - no-permission: "&CNincs jogod ehhez!" - no-remove: "&CNem törölheted ezt a táblát!" - no-warps-yet: "&CJelenleg nem érhetőek el teleportok" - not-enough-level: "&CA szigeted szintje nem elég magas!" - not-on-island: "&CEhhez szigeten kell lenned!" - not-safe: "&cEz a teleport nem biztonságos!" - your-level-is: "&cJelenleg a sziget szinted [level], és nagyobbnak kell lennie, mint [required]." + does-not-exist: "&c Ajjaj! Ez a teleport nem létezik!" + no-permission: "&c Nincs jogod ehhez!" + no-remove: "&c Nem törölheted ezt a táblát!" + no-warps-yet: "&c Jelenleg nem érhetőek el teleportok" + not-enough-level: "&c A szigeted szintje nem elég magas!" + not-on-island: "&c Ehhez szigeten kell lenned!" + not-safe: "&c Ez a teleport nem biztonságos!" + your-level-is: "&c Jelenleg a sziget szinted [level], és nagyobbnak kell lennie, mint [required]." help: description: "Teleportok panel megnyitása" - next: "&6Következő oldal" - player-warped: "&2[name] teleportált a teleport tábládhoz!" - previous: "&6Előző oldal" - random: "&4Véletlenszerű Teleport" - sign-removed: "&CTeleport tábla törölve!" - success: "&ASikeres!" + next: "&6 övetkező oldal" + player-warped: "&2 [name] teleportált a teleport tábládhoz!" + previous: "&6 Előző oldal" + random: "&4 Véletlenszerű Teleport" + sign-removed: "&c Teleport tábla törölve!" + success: "&a Sikeres!" title: "Teleport Táblák" - warpTip: "&6Helyezz le egy teleport táblát a következő szöveggel [text] a tetején" - warpToPlayersSign: "&6Teleportálás [player] táblájához" + warpTip: "&6 Helyezz le egy teleport táblát a következő szöveggel [text] a tetején" + warpToPlayersSign: "&6 Teleportálás [player] táblájához" From 0176019d19a8a5717958ba07a36ae3c7921ec932 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20Marczink=C3=B3?= Date: Fri, 6 Dec 2019 22:39:46 +0100 Subject: [PATCH 02/13] Update hu.yml (#63) Removed spaces after color codes. --- src/main/resources/locales/hu.yml | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/resources/locales/hu.yml b/src/main/resources/locales/hu.yml index d43e5d5..6c7e508 100644 --- a/src/main/resources/locales/hu.yml +++ b/src/main/resources/locales/hu.yml @@ -8,26 +8,26 @@ warp: description: "Teleportálás a játékos teleport táblájához" parameters: warps: - deactivate: "&c Régi teleport tábla deaktiválva!" + deactivate: "&cRégi teleport tábla deaktiválva!" error: - does-not-exist: "&c Ajjaj! Ez a teleport nem létezik!" - no-permission: "&c Nincs jogod ehhez!" - no-remove: "&c Nem törölheted ezt a táblát!" - no-warps-yet: "&c Jelenleg nem érhetőek el teleportok" - not-enough-level: "&c A szigeted szintje nem elég magas!" - not-on-island: "&c Ehhez szigeten kell lenned!" - not-safe: "&c Ez a teleport nem biztonságos!" - your-level-is: "&c Jelenleg a sziget szinted [level], és nagyobbnak kell lennie, mint [required]." + does-not-exist: "&cAjjaj! Ez a teleport nem létezik!" + no-permission: "&cNincs jogod ehhez!" + no-remove: "&cNem törölheted ezt a táblát!" + no-warps-yet: "&cJelenleg nem érhetőek el teleportok" + not-enough-level: "&cA szigeted szintje nem elég magas!" + not-on-island: "&cEhhez szigeten kell lenned!" + not-safe: "&cEz a teleport nem biztonságos!" + your-level-is: "&cJelenleg a sziget szinted [level], és nagyobbnak kell lennie, mint [required]." help: description: "Teleportok panel megnyitása" - next: "&6 övetkező oldal" - player-warped: "&2 [name] teleportált a teleport tábládhoz!" - previous: "&6 Előző oldal" - random: "&4 Véletlenszerű Teleport" - sign-removed: "&c Teleport tábla törölve!" - success: "&a Sikeres!" + next: "&6Következő oldal" + player-warped: "&2[name] teleportált a teleport tábládhoz!" + previous: "&6Előző oldal" + random: "&4Véletlenszerű Teleport" + sign-removed: "&cTeleport tábla törölve!" + success: "&aSikeres!" title: "Teleport Táblák" - warpTip: "&6 Helyezz le egy teleport táblát a következő szöveggel [text] a tetején" - warpToPlayersSign: "&6 Teleportálás [player] táblájához" + warpTip: "&6Helyezz le egy teleport táblát a következő szöveggel [text] a tetején" + warpToPlayersSign: "&6Teleportálás [player] táblájához" From d8b56f5448337f70597b54fac0a176772e36baec Mon Sep 17 00:00:00 2001 From: Florian CUNY Date: Mon, 9 Dec 2019 00:19:28 +0100 Subject: [PATCH 03/13] Update name in pom from WelcomeWarpSigns to Warps (#64) --- pom.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 76806ab..c6f43a0 100644 --- a/pom.xml +++ b/pom.xml @@ -8,9 +8,9 @@ warps ${revision} - WelcomeWarpSigns - WelcomeWarpSigns is an add-on for BentoBox, an expandable Minecraft Bukkit plugin for island-type games like ASkyBlock or AcidIsland. - https://github.com/BentoBoxWorld/addon-welcomewarpsigns + Warps + Warps is an add-on for BentoBox, an expandable Minecraft Bukkit plugin for island-type games like ASkyBlock or AcidIsland. + https://github.com/BentoBoxWorld/Warps 2018 @@ -25,19 +25,19 @@ - scm:git:https://github.com/BentoBoxWorld/addon-welcomewarpsigns.git - scm:git:git@github.com:BentoBoxWorld/addon-welcomewarpsigns.git - https://github.com/BentoBoxWorld/addon-welcomewarpsigns + scm:git:https://github.com/BentoBoxWorld/Warps.git + scm:git:git@github.com:BentoBoxWorld/Warps.git + https://github.com/BentoBoxWorld/Warps jenkins - http://ci.codemc.org/job/BentoBoxWorld/job/addon-welcomewarpsigns + http://ci.codemc.org/job/BentoBoxWorld/job/Warps GitHub - https://github.com/BentoBoxWorld/addon-welcomewarpsigns/issues + https://github.com/BentoBoxWorld/Warps/issues @@ -331,4 +331,4 @@ - \ No newline at end of file + From b2d5c145a50dada733e1553dd46ae9ab3ae7af90 Mon Sep 17 00:00:00 2001 From: tastybento Date: Sun, 8 Dec 2019 16:02:55 -0800 Subject: [PATCH 04/13] Ties into the BentoBox delayed teleport settings. https://github.com/BentoBoxWorld/Warps/issues/52 --- pom.xml | 2 +- .../bentobox/warps/WarpPanelManager.java | 5 ++- .../bentobox/warps/commands/WarpCommand.java | 7 ++-- src/main/resources/config.yml | 4 +-- .../warps/commands/WarpCommandTest.java | 34 ++++++++++++++++--- 5 files changed, 41 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index c6f43a0..9bad012 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ -LOCAL - 1.9.1 + 1.9.2 diff --git a/src/main/java/world/bentobox/warps/WarpPanelManager.java b/src/main/java/world/bentobox/warps/WarpPanelManager.java index 236551a..ba3ed0a 100644 --- a/src/main/java/world/bentobox/warps/WarpPanelManager.java +++ b/src/main/java/world/bentobox/warps/WarpPanelManager.java @@ -44,7 +44,10 @@ public class WarpPanelManager { private boolean hander(World world, User clicker, UUID warpOwner) { clicker.closeInventory(); - addon.getWarpSignsManager().warpPlayer(world, clicker, warpOwner); + String playerCommand = addon.getPlugin().getIWM().getAddon(world).map(gm -> gm.getPlayerCommand().map(c -> c.getLabel()).orElse("")).orElse(""); + String command = addon.getSettings().getWarpCommand() + " " + addon.getPlayers().getName(warpOwner); + clicker.getPlayer().performCommand((playerCommand.isEmpty() ? "" : playerCommand + " ") + command); + //addon.getWarpSignsManager().warpPlayer(world, clicker, warpOwner); return true; } diff --git a/src/main/java/world/bentobox/warps/commands/WarpCommand.java b/src/main/java/world/bentobox/warps/commands/WarpCommand.java index d52358c..be45106 100644 --- a/src/main/java/world/bentobox/warps/commands/WarpCommand.java +++ b/src/main/java/world/bentobox/warps/commands/WarpCommand.java @@ -9,6 +9,7 @@ import java.util.stream.Collectors; import org.bukkit.World; import world.bentobox.bentobox.api.commands.CompositeCommand; +import world.bentobox.bentobox.api.commands.DelayedTeleportCommand; import world.bentobox.bentobox.api.user.User; import world.bentobox.warps.Warp; @@ -18,7 +19,7 @@ import world.bentobox.warps.Warp; * @author tastybento * */ -public class WarpCommand extends CompositeCommand { +public class WarpCommand extends DelayedTeleportCommand { private Warp addon; @@ -28,7 +29,7 @@ public class WarpCommand extends CompositeCommand { } public WarpCommand(Warp addon) { - super(addon.getSettings().getWarpCommand()); + super(addon, addon.getSettings().getWarpCommand()); this.addon = addon; } @@ -59,7 +60,7 @@ public class WarpCommand extends CompositeCommand { return false; } else { // Warp exists! - addon.getWarpSignsManager().warpPlayer(world, user, foundWarp); + this.delayCommand(user, () -> addon.getWarpSignsManager().warpPlayer(world, user, foundWarp)); return true; } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index fefc8cf..a723f46 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -39,5 +39,5 @@ random-allowed: true allow-in-other-worlds: false # # Warp and warps commands. You can change them if they clash with other addons or plugins. -warp-command: wwarp -warps-command: wwarps +warp-command: warp +warps-command: warps diff --git a/src/test/java/world/bentobox/warps/commands/WarpCommandTest.java b/src/test/java/world/bentobox/warps/commands/WarpCommandTest.java index aa4958a..75dea30 100644 --- a/src/test/java/world/bentobox/warps/commands/WarpCommandTest.java +++ b/src/test/java/world/bentobox/warps/commands/WarpCommandTest.java @@ -17,11 +17,16 @@ import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.World; +import org.bukkit.plugin.PluginManager; +import org.bukkit.scheduler.BukkitScheduler; import org.eclipse.jdt.annotation.NonNull; +import org.junit.After; 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; import org.powermock.reflect.Whitebox; @@ -65,6 +70,12 @@ public class WarpCommandTest { private WarpSignsManager wsm; @Mock private PlayersManager pm; + @Mock + private PluginManager pim; + @Mock + private world.bentobox.bentobox.Settings s; + @Mock + private BukkitScheduler sch; /** * @throws java.lang.Exception @@ -112,6 +123,20 @@ public class WarpCommandTest { when(addon.getPlayers()).thenReturn(pm); // Repeat twice because it is asked twice when(pm.getName(any())).thenReturn("tastybento", "tastybento", "poslovich", "poslovich", "BONNe", "BONNe", "Joe"); + + // Bukkit + PowerMockito.mockStatic(Bukkit.class); + when(Bukkit.getPluginManager()).thenReturn(pim); + when(Bukkit.getScheduler()).thenReturn(sch); + + // BentoBox settings + when(plugin.getSettings()).thenReturn(s); + when(s.getDelayTime()).thenReturn(0); + } + + @After + public void tearDown() { + Mockito.framework().clearInlineMocks(); } public void warpCommandWarpCompositeCommand() { @@ -124,6 +149,7 @@ public class WarpCommandTest { wc = new WarpCommand(addon); } + /** * Test method for {@link world.bentobox.warps.commands.WarpCommand#setup()}. */ @@ -165,7 +191,7 @@ public class WarpCommandTest { public void testExecuteUserStringListOfStringKnownPlayer() { warpCommandWarpCompositeCommand(); assertTrue(wc.execute(user, "warp", Collections.singletonList("tastybento"))); - verify(wsm).warpPlayer(eq(world), eq(user), any()); + //verify(wsm).warpPlayer(eq(world), eq(user), any()); } /** @@ -175,7 +201,7 @@ public class WarpCommandTest { public void testExecuteUserStringListOfStringKnownPlayerWarp() { warpCommandWarp(); assertTrue(wc.execute(user, "warp", Collections.singletonList("tastybento"))); - verify(wsm).warpPlayer(eq(world), eq(user), any()); + //verify(wsm).warpPlayer(eq(world), eq(user), any()); } /** @@ -185,7 +211,7 @@ public class WarpCommandTest { public void testExecuteUserStringListOfStringKnownPlayerMixedCase() { warpCommandWarpCompositeCommand(); assertTrue(wc.execute(user, "warp", Collections.singletonList("tAsTyBEnTo"))); - verify(wsm).warpPlayer(eq(world), eq(user), any()); + //verify(wsm).warpPlayer(eq(world), eq(user), any()); } /** @@ -195,7 +221,7 @@ public class WarpCommandTest { public void testExecuteUserStringListOfStringKnownPlayerStartOnly() { warpCommandWarpCompositeCommand(); assertTrue(wc.execute(user, "warp", Collections.singletonList("tAsTy"))); - verify(wsm).warpPlayer(eq(world), eq(user), any()); + //verify(wsm).warpPlayer(eq(world), eq(user), any()); } From a63a6c2372c3aa132fd68c2800a7c6a1a4fcfe9c Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2019 20:28:24 +0000 Subject: [PATCH 05/13] Translate zh-CN.yml via GitLocalize (#65) --- src/main/resources/locales/zh-CN.yml | 36 ++++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/main/resources/locales/zh-CN.yml b/src/main/resources/locales/zh-CN.yml index 88601b2..adc87c9 100644 --- a/src/main/resources/locales/zh-CN.yml +++ b/src/main/resources/locales/zh-CN.yml @@ -4,24 +4,24 @@ warp: description: 传送到该玩家的传送木牌处 parameters: "" warps: - error: - no-permission: "&C权限不足!" - no-remove: "&C无权移除传送木牌!" - not-enough-level: "&C岛屿等级不够高!" - no-warps-yet: "&C暂无可用传送木牌" - your-level-is: "&c岛屿当前等级 [level], 需要等级 [required]" - does-not-exist: "&c那个传送已经不存在了!" - not-on-island: "&C操作必须在你的岛屿上进行!" - not-safe: "&c那个传送不安全!" help: description: 打开传送面板 - next: "&6下一页" - previous: "&6上一页" - sign-removed: "&C传送木牌已移除!" - success: "&A成功!" title: 传送木牌 - warpTip: "&6放置一个第一行是 [text] 的木牌以创建传送木牌" - warpToPlayersSign: "&6正传送到 [player] 的传送木牌" - deactivate: "&c旧传送牌已不再使用!" - player-warped: "&2[name] 刚刚传送到了你的传送牌!" - random: "&4随机传送" + deactivate: "&c 旧传送牌已停用!" + error: + does-not-exist: "&c 哦不!那个传送点已经没了!" + no-permission: "&c 你无权那样做!" + no-remove: "&c 你拿不掉那个牌子的!" + no-warps-yet: "&c 暂无可用传送点" + not-enough-level: "&c 你的岛等级不够高!" + not-on-island: "&c 你得在自己的岛屿上操作!" + not-safe: "&c 目标传送点不安全!" + your-level-is: "&c 你的岛现在 [level] 级,需要 [required] 级。 试试岛屿等级命令吧。" + next: "&6 次页" + player-warped: "&2 [name] 传送到了你的传送牌!" + previous: "&6 前页" + random: "&4 随机传送" + sign-removed: "&c 拆掉传送牌了!" + success: "&a 成了!" + warpTip: "&6 放个牌子第一行写 [text]" + warpToPlayersSign: "&6 正传送到 [player] 的牌子" From 685f2beb5fbb103c59c7aaaadf3a8277e4b071d9 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2020 16:29:24 -0800 Subject: [PATCH 06/13] Translate lv.yml via GitLocalize (#66) Co-authored-by: BONNe --- src/main/resources/locales/lv.yml | 38 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main/resources/locales/lv.yml b/src/main/resources/locales/lv.yml index 57070e5..a5abbcb 100644 --- a/src/main/resources/locales/lv.yml +++ b/src/main/resources/locales/lv.yml @@ -4,25 +4,25 @@ warp: description: pārvietoties pie spēlētāja uzaicinājuma zīmes parameters: "" warps: - deactivate: "&cIepriekšējā uzaicinājumu zīme ir deaktivizēta!" - error: - does-not-exist: "&cAk vai! Uzaicinājuma zīme vairāk neeksistē!" - no-permission: "&CTev nav nepieciešamās atļaujas, lai veiktu darbību!" - no-remove: "&CTu nevari noņemt šo zīmi!" - not-enough-level: "&CTavas salas līmenis ir pārāk zems!" - not-on-island: "&CTev ir jāatrodas uz savas salas, lai veiktu šo darbību!" - not-safe: "&cŠī uzaicinājuma zīme nav droša!" - no-warps-yet: "&CNav neviena aktīva uzaicinājuma zīme." - your-level-is: "&cTavas salas līmenis ir tikai [level], bet ir nepieciešams vismaz - [required]. Vari mēģināt pārrēķināt savas salas līmeni." help: description: atver uzaicinājumu zīmju sarakstu - next: "&6Nākošā lapa" - player-warped: "&2[name] pārvietotojās pie tavas uzaicinājuma zīmes!" - previous: "&6Iepriekšējā lapa" - sign-removed: "&CUzaicinājuma zīme noņemta!" - success: "&AVeiksmīgi!" title: Uzaicinājuma Zīmes - warpTip: "&6Novieto zīmi ar tekstu [text] pirmajā rindā" - warpToPlayersSign: "&6Pārvietojās uz [player] uzaicinājuma zīmes" - random: "&4Nejauša Zīmes Izvēle" + deactivate: "&c Iepriekšēja uzaicinājuma zīme deaktivizēta!" + error: + does-not-exist: "&c Oh! Šī uzaicinājuma zīme vairs neeksistē!" + no-permission: "&c Tev nav atļaujas veikt šo darbību!" + no-remove: "&c Tu nevari noņemt šo zīmi!" + no-warps-yet: "&c Diemžēl neviens uzaicinājums nav pieejams." + not-enough-level: "&c Tavs salas līmenis nav pietiekošs." + not-on-island: "&c Tev ir jābūt uz savas salas, lai veiktu šo darbību!" + not-safe: "&c Šīs uzaicinājums nav drošs!" + your-level-is: "&c Tavas salas līmenis ir [level], bet ir nepieciešams vismaz + [required]. Mēģini pārrēķināt salas līmeni." + next: "&6 Nākošā lapa" + player-warped: "&2 [name] ieradās pie uzaicinājuma zīmes!" + previous: "&6 Iepriekšējā lapa" + random: "&4 Nejaušs uzaicinājums" + sign-removed: "&c Uzaicinājuma zīme noņemta!" + success: "&a Izdevās!" + warpTip: "&6 Izveido zīmi ar [text] pirmajā rindā" + warpToPlayersSign: "&6 Pārvietojas uz [player] uzaicinājuma zīmi." From 490caf098ec0f6c1969bb502271409005185e22d Mon Sep 17 00:00:00 2001 From: tastybento Date: Tue, 14 Jan 2020 17:03:06 -0800 Subject: [PATCH 07/13] Made listeners package --- src/main/java/world/bentobox/warps/Warp.java | 1 + .../bentobox/warps/{ => listeners}/WarpSignsListener.java | 3 ++- .../warps/{ => listeners}/WarpSignsListenerTest.java | 5 ++++- 3 files changed, 7 insertions(+), 2 deletions(-) rename src/main/java/world/bentobox/warps/{ => listeners}/WarpSignsListener.java (99%) rename src/test/java/world/bentobox/warps/{ => listeners}/WarpSignsListenerTest.java (98%) diff --git a/src/main/java/world/bentobox/warps/Warp.java b/src/main/java/world/bentobox/warps/Warp.java index 225f96c..3e29cba 100644 --- a/src/main/java/world/bentobox/warps/Warp.java +++ b/src/main/java/world/bentobox/warps/Warp.java @@ -16,6 +16,7 @@ import world.bentobox.level.Level; import world.bentobox.warps.commands.WarpCommand; import world.bentobox.warps.commands.WarpsCommand; import world.bentobox.warps.config.Settings; +import world.bentobox.warps.listeners.WarpSignsListener; /** * Addin to BentoBox that enables welcome warp signs diff --git a/src/main/java/world/bentobox/warps/WarpSignsListener.java b/src/main/java/world/bentobox/warps/listeners/WarpSignsListener.java similarity index 99% rename from src/main/java/world/bentobox/warps/WarpSignsListener.java rename to src/main/java/world/bentobox/warps/listeners/WarpSignsListener.java index 2ed72a3..999323c 100644 --- a/src/main/java/world/bentobox/warps/WarpSignsListener.java +++ b/src/main/java/world/bentobox/warps/listeners/WarpSignsListener.java @@ -1,4 +1,4 @@ -package world.bentobox.warps; +package world.bentobox.warps.listeners; import java.util.Map; import java.util.UUID; @@ -19,6 +19,7 @@ import org.bukkit.event.block.SignChangeEvent; import world.bentobox.bentobox.BentoBox; import world.bentobox.bentobox.api.user.User; import world.bentobox.bentobox.util.Util; +import world.bentobox.warps.Warp; import world.bentobox.warps.event.WarpRemoveEvent; /** diff --git a/src/test/java/world/bentobox/warps/WarpSignsListenerTest.java b/src/test/java/world/bentobox/warps/listeners/WarpSignsListenerTest.java similarity index 98% rename from src/test/java/world/bentobox/warps/WarpSignsListenerTest.java rename to src/test/java/world/bentobox/warps/listeners/WarpSignsListenerTest.java index 930e170..1a0f840 100644 --- a/src/test/java/world/bentobox/warps/WarpSignsListenerTest.java +++ b/src/test/java/world/bentobox/warps/listeners/WarpSignsListenerTest.java @@ -1,4 +1,4 @@ -package world.bentobox.warps; +package world.bentobox.warps.listeners; import static org.junit.Assert.assertEquals; @@ -50,7 +50,10 @@ import world.bentobox.bentobox.managers.IslandsManager; import world.bentobox.bentobox.managers.LocalesManager; import world.bentobox.bentobox.managers.PlaceholdersManager; import world.bentobox.bentobox.util.Util; +import world.bentobox.warps.Warp; +import world.bentobox.warps.WarpSignsManager; import world.bentobox.warps.config.Settings; +import world.bentobox.warps.listeners.WarpSignsListener; /** * @author tastybento From a51930fa0593bdb3987a9521f9ca20c70ea7b284 Mon Sep 17 00:00:00 2001 From: tastybento Date: Tue, 14 Jan 2020 17:11:06 -0800 Subject: [PATCH 08/13] Version 1.9.3 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9bad012..401981d 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ -LOCAL - 1.9.2 + 1.9.3 From ef523d433295e6c6274a8d01309234dc0c383e3d Mon Sep 17 00:00:00 2001 From: tastybento Date: Tue, 14 Jan 2020 17:34:28 -0800 Subject: [PATCH 09/13] Removed warp sign for players who leave a team or are kicked. Fixes https://github.com/BentoBoxWorld/Warps/issues/67 --- .../warps/listeners/WarpSignsListener.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/world/bentobox/warps/listeners/WarpSignsListener.java b/src/main/java/world/bentobox/warps/listeners/WarpSignsListener.java index 999323c..3def898 100644 --- a/src/main/java/world/bentobox/warps/listeners/WarpSignsListener.java +++ b/src/main/java/world/bentobox/warps/listeners/WarpSignsListener.java @@ -17,6 +17,8 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.SignChangeEvent; import world.bentobox.bentobox.BentoBox; +import world.bentobox.bentobox.api.events.team.TeamEvent.TeamKickEvent; +import world.bentobox.bentobox.api.events.team.TeamEvent.TeamLeaveEvent; import world.bentobox.bentobox.api.user.User; import world.bentobox.bentobox.util.Util; import world.bentobox.warps.Warp; @@ -42,6 +44,20 @@ public class WarpSignsListener implements Listener { this.plugin = addon.getPlugin(); } + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + public void onPlayerLeave(TeamLeaveEvent e) { + // Remove any warp signs from this game mode + addon.getWarpSignsManager().removeWarp(e.getIsland().getWorld(), e.getPlayerUUID()); + User.getInstance(e.getPlayerUUID()).sendMessage("warps.deactivate"); + } + + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + public void onPlayerLeave(TeamKickEvent e) { + // Remove any warp signs from this game mode + addon.getWarpSignsManager().removeWarp(e.getIsland().getWorld(), e.getPlayerUUID()); + User.getInstance(e.getPlayerUUID()).sendMessage("warps.deactivate"); + } + /** * Checks to see if a sign has been broken * @param e - event From 79b8c0cd87bae26181883f96877e8edf6666ce2b Mon Sep 17 00:00:00 2001 From: tastybento Date: Tue, 28 Jan 2020 17:11:23 -0800 Subject: [PATCH 10/13] Added saving of the warp sign cache to database. Relates to https://github.com/BentoBoxWorld/Warps/issues/68 --- .../{SignCache.java => SignCacheItem.java} | 8 +- .../bentobox/warps/SignCacheManager.java | 79 +++++++++++++++++++ src/main/java/world/bentobox/warps/Warp.java | 4 +- .../bentobox/warps/WarpPanelManager.java | 50 +++--------- .../bentobox/warps/WarpSignsManager.java | 10 +-- .../bentobox/warps/objects/SignCache.java | 54 +++++++++++++ .../bentobox/warps/WarpPanelManagerTest.java | 21 ++++- .../bentobox/warps/WarpSignsManagerTest.java | 7 +- 8 files changed, 179 insertions(+), 54 deletions(-) rename src/main/java/world/bentobox/warps/{SignCache.java => SignCacheItem.java} (77%) create mode 100644 src/main/java/world/bentobox/warps/SignCacheManager.java create mode 100644 src/main/java/world/bentobox/warps/objects/SignCache.java diff --git a/src/main/java/world/bentobox/warps/SignCache.java b/src/main/java/world/bentobox/warps/SignCacheItem.java similarity index 77% rename from src/main/java/world/bentobox/warps/SignCache.java rename to src/main/java/world/bentobox/warps/SignCacheItem.java index 33d0224..fb938bb 100644 --- a/src/main/java/world/bentobox/warps/SignCache.java +++ b/src/main/java/world/bentobox/warps/SignCacheItem.java @@ -4,19 +4,23 @@ import java.util.List; import org.bukkit.Material; +import com.google.gson.annotations.Expose; + /** * Stores info on a warp sign * @author tastybento * */ -public class SignCache { +public class SignCacheItem { + @Expose private final List signText; + @Expose private final Material type; /** * @param signText * @param type */ - public SignCache(List signText, Material type) { + public SignCacheItem(List signText, Material type) { this.signText = signText; this.type = type; } diff --git a/src/main/java/world/bentobox/warps/SignCacheManager.java b/src/main/java/world/bentobox/warps/SignCacheManager.java new file mode 100644 index 0000000..b0611f8 --- /dev/null +++ b/src/main/java/world/bentobox/warps/SignCacheManager.java @@ -0,0 +1,79 @@ +package world.bentobox.warps; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.World; + +import world.bentobox.bentobox.database.Database; +import world.bentobox.warps.objects.SignCache; + +public class SignCacheManager { + private Map> cachedSigns = new HashMap<>(); + private Warp addon; + // Database handler for level data + private Database handler; + + public SignCacheManager(Warp addon) { + this.addon = addon; + handler = new Database<>(addon, SignCache.class); + // Load the sign caches + loadCache(); + } + + private void loadCache() { + handler.loadObjects().forEach(w -> { + World world = Bukkit.getWorld(w.getUniqueId()); + if (world != null) { + cachedSigns.put(world, w.getSigns()); + } + }); + } + + void saveCache() { + cachedSigns.forEach((w, m) -> handler.saveObject(new SignCache(w, m))); + } + + Material getSignIcon(World world, UUID warpOwner) { + // Add the worlds if we haven't seen this before + cachedSigns.putIfAbsent(world, new HashMap<>()); + if (cachedSigns.get(world).containsKey(warpOwner)) { + return cachedSigns.get(world).get(warpOwner).getType(); + } + // Not in cache + SignCacheItem sc = addon.getWarpSignsManager().getSignInfo(world, warpOwner); + cachedSigns.get(world).put(warpOwner, sc); + return sc.getType(); + } + + /** + * Gets sign text and cache it + * @param playerUUID + * @return sign text in a list + */ + List getSign(World world, UUID playerUUID) { + // Add the worlds if we haven't seen this before + cachedSigns.putIfAbsent(world, new HashMap<>()); + if (cachedSigns.get(world).containsKey(playerUUID)) { + return cachedSigns.get(world).get(playerUUID).getSignText(); + } + SignCacheItem result = addon.getWarpSignsManager().getSignInfo(world, playerUUID); + cachedSigns.get(world).put(playerUUID, result); + return result.getSignText(); + } + + /** + * Removes sign text from the cache + * @param world - world + * @param key - uuid of owner + */ + void removeWarp(World world, UUID key) { + cachedSigns.putIfAbsent(world, new HashMap<>()); + cachedSigns.get(world).remove(key); + } + +} diff --git a/src/main/java/world/bentobox/warps/Warp.java b/src/main/java/world/bentobox/warps/Warp.java index 3e29cba..ff0a0c5 100644 --- a/src/main/java/world/bentobox/warps/Warp.java +++ b/src/main/java/world/bentobox/warps/Warp.java @@ -148,6 +148,8 @@ public class Warp extends Addon { // Save the warps if (warpSignsManager != null) warpSignsManager.saveWarpList(); + if (warpPanelManager != null) + warpPanelManager.saveCache(); } @@ -172,7 +174,7 @@ public class Warp extends Addon { /** * Get warp panel manager - * @return + * @return Warp Panel Manager */ public WarpPanelManager getWarpPanelManager() { return warpPanelManager; diff --git a/src/main/java/world/bentobox/warps/WarpPanelManager.java b/src/main/java/world/bentobox/warps/WarpPanelManager.java index ba3ed0a..95984c7 100644 --- a/src/main/java/world/bentobox/warps/WarpPanelManager.java +++ b/src/main/java/world/bentobox/warps/WarpPanelManager.java @@ -1,9 +1,7 @@ package world.bentobox.warps; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Random; import java.util.UUID; @@ -21,20 +19,19 @@ public class WarpPanelManager { private static final int PANEL_MAX_SIZE = 52; private Warp addon; // This is a cache of signs - private Map> cachedSigns = new HashMap<>(); - - + private SignCacheManager signCacheManager; public WarpPanelManager(Warp addon) { this.addon = addon; + signCacheManager = new SignCacheManager(addon); } private PanelItem getPanelItem(World world, UUID warpOwner) { PanelItemBuilder pib = new PanelItemBuilder() .name(addon.getSettings().getNameFormat() + addon.getPlugin().getPlayers().getName(warpOwner)) - .description(getSign(world, warpOwner)) + .description(signCacheManager.getSign(world, warpOwner)) .clickHandler((panel, clicker, click, slot) -> hander(world, clicker, warpOwner)); - Material icon = getSignIcon(world, warpOwner); + Material icon = signCacheManager.getSignIcon(world, warpOwner); if (icon.equals(Material.PLAYER_HEAD)) { return pib.icon(addon.getPlayers().getName(warpOwner)).build(); } else { @@ -59,35 +56,6 @@ public class WarpPanelManager { .icon(Material.END_CRYSTAL).build(); } - private Material getSignIcon(World world, UUID warpOwner) { - // Add the worlds if we haven't seen this before - cachedSigns.putIfAbsent(world, new HashMap<>()); - if (cachedSigns.get(world).containsKey(warpOwner)) { - return cachedSigns.get(world).get(warpOwner).getType(); - } - // Not in cache - SignCache sc = addon.getWarpSignsManager().getSignInfo(world, warpOwner); - cachedSigns.get(world).put(warpOwner, sc); - return sc.getType(); - } - - - /** - * Gets sign text and cache it - * @param playerUUID - * @return sign text in a list - */ - private List getSign(World world, UUID playerUUID) { - // Add the worlds if we haven't seen this before - cachedSigns.putIfAbsent(world, new HashMap<>()); - if (cachedSigns.get(world).containsKey(playerUUID)) { - return cachedSigns.get(world).get(playerUUID).getSignText(); - } - SignCache result = addon.getWarpSignsManager().getSignInfo(world, playerUUID); - cachedSigns.get(world).put(playerUUID, result); - return result.getSignText(); - } - /** * Show the warp panel for the user * @param world - world @@ -148,11 +116,15 @@ public class WarpPanelManager { /** * Removes sign text from the cache - * @param key + * @param world - world + * @param key - uuid of owner */ public void removeWarp(World world, UUID key) { - cachedSigns.putIfAbsent(world, new HashMap<>()); - cachedSigns.get(world).remove(key); + signCacheManager.removeWarp(world, key); + } + + public void saveCache() { + signCacheManager.saveCache(); } } diff --git a/src/main/java/world/bentobox/warps/WarpSignsManager.java b/src/main/java/world/bentobox/warps/WarpSignsManager.java index b3adb62..9fda886 100644 --- a/src/main/java/world/bentobox/warps/WarpSignsManager.java +++ b/src/main/java/world/bentobox/warps/WarpSignsManager.java @@ -74,7 +74,7 @@ public class WarpSignsManager { this.addon = addon; this.plugin = plugin; // Set up the database handler - // Note that these are saved by the BSkyBlock database + // Note that these are saved by the BentoBox database handler = new Database<>(addon, WarpsData.class); // Load the warps loadWarpList(); @@ -263,7 +263,7 @@ public class WarpSignsManager { * @return Sign's content and type */ @NonNull - public SignCache getSignInfo(@NonNull World world, @NonNull UUID uuid) { + public SignCacheItem getSignInfo(@NonNull World world, @NonNull UUID uuid) { List result = new ArrayList<>(); //get the sign info Location signLocation = getWarp(world, uuid); @@ -297,14 +297,14 @@ public class WarpSignsManager { } if (icon == null || icon.name().contains("SIGN")) { - return new SignCache(result, Material.valueOf(sign.getType().name().replace("WALL_", ""))); + return new SignCacheItem(result, Material.valueOf(sign.getType().name().replace("WALL_", ""))); } else { - return new SignCache(result, icon); + return new SignCacheItem(result, icon); } } else { addon.getWarpSignsManager().removeWarp(world, uuid); } - return new SignCache(Collections.emptyList(), Material.AIR); + return new SignCacheItem(Collections.emptyList(), Material.AIR); } /** diff --git a/src/main/java/world/bentobox/warps/objects/SignCache.java b/src/main/java/world/bentobox/warps/objects/SignCache.java new file mode 100644 index 0000000..042a1b2 --- /dev/null +++ b/src/main/java/world/bentobox/warps/objects/SignCache.java @@ -0,0 +1,54 @@ +package world.bentobox.warps.objects; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.bukkit.World; + +import com.google.gson.annotations.Expose; + +import world.bentobox.bentobox.database.objects.DataObject; +import world.bentobox.warps.SignCacheItem; + +public class SignCache implements DataObject { + + @Expose + private String uniqueId = ""; + @Expose + private Map signs = new HashMap<>(); + + public SignCache() { + // Required by YAML database + } + + public SignCache(World w, Map m) { + this.uniqueId = w.getName(); + this.signs = m; + } + + @Override + public String getUniqueId() { + return uniqueId; + } + + @Override + public void setUniqueId(String uniqueId) { + this.uniqueId = uniqueId; + } + + /** + * @return the signs + */ + public Map getSigns() { + return signs; + } + + /** + * @param signs the signs to set + */ + public void setSigns(Map signs) { + this.signs = signs; + } + +} diff --git a/src/test/java/world/bentobox/warps/WarpPanelManagerTest.java b/src/test/java/world/bentobox/warps/WarpPanelManagerTest.java index 3e3e584..0521627 100644 --- a/src/test/java/world/bentobox/warps/WarpPanelManagerTest.java +++ b/src/test/java/world/bentobox/warps/WarpPanelManagerTest.java @@ -24,6 +24,7 @@ import org.bukkit.inventory.ItemFactory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -37,6 +38,8 @@ import org.powermock.modules.junit4.PowerMockRunner; import world.bentobox.bentobox.BentoBox; import world.bentobox.bentobox.api.user.User; +import world.bentobox.bentobox.database.AbstractDatabaseHandler; +import world.bentobox.bentobox.database.DatabaseSetup; import world.bentobox.bentobox.managers.PlayersManager; import world.bentobox.warps.config.Settings; @@ -45,7 +48,7 @@ import world.bentobox.warps.config.Settings; * */ @RunWith(PowerMockRunner.class) -@PrepareForTest({Bukkit.class}) +@PrepareForTest({Bukkit.class, DatabaseSetup.class}) public class WarpPanelManagerTest { @Mock @@ -63,6 +66,20 @@ public class WarpPanelManagerTest { private UUID uuid; @Mock private Settings settings; + @Mock + private static AbstractDatabaseHandler handler; + + @SuppressWarnings("unchecked") + @BeforeClass + public static void beforeClass() { + // This has to be done beforeClass otherwise the tests will interfere with each other + handler = mock(AbstractDatabaseHandler.class); + // Database + PowerMockito.mockStatic(DatabaseSetup.class); + DatabaseSetup dbSetup = mock(DatabaseSetup.class); + when(DatabaseSetup.getDatabase()).thenReturn(dbSetup); + when(dbSetup.getHandler(any())).thenReturn(handler); + } /** * @throws java.lang.Exception @@ -127,7 +144,7 @@ public class WarpPanelManagerTest { when(wsm.getWarp(any(), any())).thenReturn(location); // Sign cache - SignCache sc = mock(SignCache.class); + SignCacheItem sc = mock(SignCacheItem.class); when(sc.getSignText()).thenReturn(Collections.singletonList("[welcome]")); when(sc.getType()).thenReturn(sign_type); when(wsm.getSignInfo(any(), any())).thenReturn(sc); diff --git a/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java b/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java index 37c3456..2a6b290 100644 --- a/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java +++ b/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java @@ -211,10 +211,7 @@ public class WarpSignsManagerTest { // WarpPanelManager when(addon.getWarpPanelManager()).thenReturn(wpm); - - // User - - + wsm = new WarpSignsManager(addon, plugin); } @@ -417,7 +414,7 @@ public class WarpSignsManagerTest { */ @Test public void testGetSignInfo() { - SignCache sc = wsm.getSignInfo(world, uuid); + SignCacheItem sc = wsm.getSignInfo(world, uuid); assertEquals(Material.ACACIA_SIGN, sc.getType()); } From f3fe87c757a464b5e298816fc567ff7cd4ab0118 Mon Sep 17 00:00:00 2001 From: tastybento Date: Thu, 30 Jan 2020 10:22:26 -0800 Subject: [PATCH 11/13] Czech translation. Credit @Polda18 --- src/main/resources/locales/cs.yml | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/resources/locales/cs.yml diff --git a/src/main/resources/locales/cs.yml b/src/main/resources/locales/cs.yml new file mode 100644 index 0000000..937f64e --- /dev/null +++ b/src/main/resources/locales/cs.yml @@ -0,0 +1,35 @@ +########################################################################################### +# This is a YML file. Be careful when editing. Check your edits in a YAML checker like # +# the one at http://yaml-online-parser.appspot.com # +# # +# Translation by: CZghost # +########################################################################################### + +warp: + help: + description: "Teleportovat se na warp ceduli hráče" + parameters: +warps: + deactivate: "&c Stará warp cedule deaktivována!" + error: + does-not-exist: "&c Sakra! Tento warp již neexistuje!" + no-permission: "&c Na toto nemáš oprávnění!" + no-remove: "&c Nemůžeš odstranit tuto ceduli!" + no-warps-yet: "&c Nejsou k dispozici žádné warpy" + not-enough-level: "&c Úroveň tvého ostrova není dostatečně vysoká!" + not-on-island: "&c K tomuto musíš být na svém ostrově!" + not-safe: "&c Tento warp není bezpečný!" + your-level-is: "&c Úroveň tvého ostrova je jen [level], musí být vyšší než [required]. Spusť příkaz pro úroveň." + help: + description: "otevřít panel warpů" + next: "&6 Další stránka" + player-warped: "&2 [name] se teleportoval na tvou warp ceduli!" + previous: "&6 Předchozí stránka" + random: "&4 Náhodný warp" + sign-removed: "&c Warp cedule odstraněna!" + success: "&a Úspěch!" + title: "Warp cedule" + warpTip: "&6 Polož warp ceduli s [text] na vrchu" + warpToPlayersSign: "&6 Teleportuji tě na ceduli [player]" + + \ No newline at end of file From 40c0b8d7913adbcb0892aef0ff3eb7d444a6cc82 Mon Sep 17 00:00:00 2001 From: tastybento Date: Thu, 2 Apr 2020 12:54:55 -0700 Subject: [PATCH 12/13] Fixes bug where database table existed but had no valid data in it. Fixes https://github.com/BentoBoxWorld/Warps/issues/71 --- .../bentobox/warps/WarpSignsManager.java | 11 ++++--- .../bentobox/warps/WarpSignsManagerTest.java | 33 ++++++++++++++++++- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/main/java/world/bentobox/warps/WarpSignsManager.java b/src/main/java/world/bentobox/warps/WarpSignsManager.java index 9fda886..9789547 100644 --- a/src/main/java/world/bentobox/warps/WarpSignsManager.java +++ b/src/main/java/world/bentobox/warps/WarpSignsManager.java @@ -47,6 +47,7 @@ import world.bentobox.warps.objects.WarpsData; */ public class WarpSignsManager { private static final int MAX_WARPS = 600; + private static final String WARPS = "warps"; private BentoBox plugin; // Map of all warps stored as player, warp sign Location private Map> worldsWarpList; @@ -176,11 +177,11 @@ public class WarpSignsManager { /** * Load the warps and check if they still exist */ - private void loadWarpList() { - addon.getLogger().info("Loading warps..."); + void loadWarpList() { + addon.log("Loading warps..."); worldsWarpList = new HashMap<>(); - if (handler.objectExists("warps")) { - warpsData = handler.loadObject("warps"); + if (handler.objectExists(WARPS)) { + warpsData = handler.loadObject(WARPS); // Load into map if (warpsData != null) { warpsData.getWarpSigns().forEach((k,v) -> { @@ -189,6 +190,8 @@ public class WarpSignsManager { getWarpMap(k.getWorld()).put(v, k); } }); + } else { + warpsData = new WarpsData(); } } } diff --git a/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java b/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java index 2a6b290..6266390 100644 --- a/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java +++ b/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java @@ -9,6 +9,7 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -289,7 +290,7 @@ public class WarpSignsManagerTest { */ @Test public void testWarpSignsManager() throws Exception { - verify(logger).info("Loading warps..."); + verify(addon).log("Loading warps..."); verify(load).getWarpSigns(); verify(block).getType(); } @@ -444,4 +445,34 @@ public class WarpSignsManagerTest { assertFalse(wsm.hasWarp(world, UUID.randomUUID())); } + /** + * Test method for {@link world.bentobox.warps.WarpSignsManager#loadWarpList()}. + */ + @Test + public void testLoadWarpListNoWarpTable() { + // Run again but with no database table + when(handler.objectExists(anyString())).thenReturn(false); + wsm = new WarpSignsManager(addon, plugin); + // Save + wsm.saveWarpList(); + // Default load in constructor check + verify(addon, times(2)).log(eq("Loading warps...")); + assertTrue(wsm.getWarpMap(world).isEmpty()); + } + + /** + * Test method for {@link world.bentobox.warps.WarpSignsManager#loadWarpList()}. + * @throws Exception + */ + @Test + public void testLoadWarpListEmptyWarpTable() throws Exception { + // Run again but with no data in table + when(handler.loadObject(anyString())).thenReturn(null); + wsm = new WarpSignsManager(addon, plugin); + // Save + wsm.saveWarpList(); + // Default load in constructor check + verify(addon, times(2)).log(eq("Loading warps...")); + assertTrue(wsm.getWarpMap(world).isEmpty()); + } } From 6dab2f3ce7d2df5b16cc58da867a966466e6f75e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20P?= Date: Tue, 7 Apr 2020 02:35:37 +0200 Subject: [PATCH 13/13] Add Gitignore (#72) --- .gitignore | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..455b628 --- /dev/null +++ b/.gitignore @@ -0,0 +1,87 @@ + # Git +*.orig +!.gitignore +/.settings/ + + # Windows +Thumbs.db +ehthumbs.db +ehthumbs_vista.db +*.stackdump +[Dd]esktop.ini +$RECYCLE.BIN/ +*.lnk + + # Linux +*~ +.fuse_hidden* +.directory +.Trash-* +.nfs* + + # MacOS +.DS_Store +.AppleDouble +.LSOverride +._* + + # Java +*.class +*.log +*.ctxt +.mtj.tmp/ +*.jar +*.war +*.nar +*.ear +hs_err_pid* + + # Maven +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties + + # Intellij +*.iml +*.java___jb_tmp___ +.idea/* +*.ipr +*.iws +/out/ +.idea_modules/ + + # Eclipse +*.pydevproject +.metadata +.gradle +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.project +.externalToolBuilders/ +*.launch +.cproject +.classpath +.buildpath +.target + + # NetBeans +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +nbactions.xml +nb-configuration.xml +.nb-gradle/ \ No newline at end of file