diff --git a/src/test/java/sh/okx/rankup/ranksgui/RanksGuiTest.java b/src/test/java/sh/okx/rankup/ranksgui/RanksGuiTest.java new file mode 100644 index 0000000..bb72604 --- /dev/null +++ b/src/test/java/sh/okx/rankup/ranksgui/RanksGuiTest.java @@ -0,0 +1,40 @@ +package sh.okx.rankup.ranksgui; + +import static org.junit.jupiter.api.Assertions.*; + +import be.seeseemelk.mockbukkit.entity.PlayerMock; +import org.bukkit.inventory.Inventory; +import org.junit.jupiter.api.Test; +import sh.okx.rankup.RankupTest; + +public class RanksGuiTest extends RankupTest { + + public RanksGuiTest() { + super("ranksgui"); + } + + @Test + public void testRowsWithGroup() { + PlayerMock player = server.addPlayer(); + plugin.getPermissions().addGroup(player.getUniqueId(), "a"); + + player.addAttachment(plugin, "rankup.ranks", true); + server.dispatchCommand(player, "ranks"); + + Inventory top = player.getOpenInventory().getTopInventory(); + assertNotNull(top, "ranks gui has not opened"); + assertEquals(36, top.getSize(), "ranks gui is configured to have 4 rows"); + } + + @Test + public void testRowsWithoutGroup() { + PlayerMock player = server.addPlayer(); + + player.addAttachment(plugin, "rankup.ranks", true); + server.dispatchCommand(player, "ranks"); + + Inventory top = player.getOpenInventory().getTopInventory(); + assertNotNull(top, "ranks gui has not opened"); + assertEquals(27, top.getSize(), "ranks gui is configured to have 3 rows"); + } +} diff --git a/src/test/resources/ranksgui/config.yml b/src/test/resources/ranksgui/config.yml new file mode 100644 index 0000000..d68eeb4 --- /dev/null +++ b/src/test/resources/ranksgui/config.yml @@ -0,0 +1,111 @@ +# this is used for letting you know that you need to update/change your config file +version: 10 + +# the locale to use for messages +# all messages can be customised but this allows you to +# choose messages that are already translated +# locales can be found in the locale/ folder +locale: en + +# interval (in minutes) to check to autorankup players +# ranking up manually will always be enabled +# set to 0 to disable +autorankup-interval: 0 + +# whether /ranks and /prestiges should be enabled (true) or disabled (false) +# /rankup3 reload will not do anything if this is changed, +# you will have to restart your server. +ranks: true +# you can alternatively negate the permission rankup.prestiges +# this will also make the command not autocomplete in 1.13 +prestiges: true + +# whether to enable the /ranks GUI. +# will override the /ranks command +ranks-gui: true + +# whether or not /prestige and /prestiges should be enabled. +# when a player reaches the top rank, they can do /prestige to return to the first rank, +# but you will be able to grant them an additional "prestige" group or additional items. +# +# if you do not want this command to autocomplete, make sure +# you negate the permission rankup.prestige with your permissions plugin. +# if enabled, a prestiges.yml file will be generated with some example prestiges +# You must restart your server when you change this for it to work! +prestige: false + +# if true, players with the permission rankup.notify will receive notifications when they join +# to update if the server is on an older version of Rankup. +notify-update: true + +# if rankups and prestiges should be by permissions +# if false, players will be checked for if they have a group of the same name as in rankups.yml, +# and automatically added and taken away from those groups. +# if true, players will be checked for the permission rankup.rank.RANK, where RANK +# is the rankup in rankups.yml. Nothing will automatically happen on rankup, so you must +# use commands to change a player's group or permission. +permission-rankup: false + +# how people should confirm ranking up +# options are: gui, text or none +confirmation-type: 'gui' + +# how long, in seconds, people have to wait between a successful /rankup or /prestige +# set to 0 to disable. +cooldown: 1 + +# if enabled, players can run /maxrankup to rankup as many times as possible, +# before they fail the requirements for the next rank. +# the permission rankup.maxrankup is used for this command, but it is given by default. +# note that /maxrankup, if enabled, has no confirmation. +max-rankup: + # You must restart your server if you enable or disable /maxrankup! + enabled: false + # whether to send a message for each rankup a player does + # if set to true, the chat may be spammed for each rankup a player goes through with /maxrankup + # if set to false, only the last rankup will be shown (if a player starts on rank A, then does + # /maxrankup and ranks up to B and then C, it will just say "player has ranked up to C") + individual-messages: true + +# options when using the text rankup confirmation +text: + # the time in seconds for a player to + # confirm by typing /rankup again + timeout: 10 + +# placeholders: +# https://okx.sh/rankup/Placeholders.html +placeholders: + # format for money. for more information, see + # https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html + money-format: "#,##0.##" + percent-format: "0.##" + # the format used for requirements + simple-format: "#.##" + # used for current_rank and next_rank placeholders when a player is not in anything in rankups.yml + not-in-ladder: "None" + # used in the current_prestige placeholders when a player hasn't prestiged yet + no-prestige: "None" + # used in the next_rank and next_prestige placeholders when a player is at the highest rank or prestige + highest-rank: "None" + # used in the %rankup_status_[rank]% placeholders + status: + complete: "Complete" + current: "Current" + incomplete: "Incomplete" + last-rank-display-name: "last rank" + +# what to shorten money by. +# ie 1000 -> 1k +# set to an empty list to disable +# for each entry here, it counts as increasing by a factor of 1,000 +# the first represents thousands (1,000) then millions (1,000,000) then billions (1,000,000,000) etc. +# this is used in the "| shortmoney" filter +shorten: + - 'K' + - 'M' + - 'B' + - 'T' + - 'Q' + - 'Qu' + - 'S' diff --git a/src/test/resources/ranksgui/rankups.yml b/src/test/resources/ranksgui/rankups.yml new file mode 100644 index 0000000..6b1fd97 --- /dev/null +++ b/src/test/resources/ranksgui/rankups.yml @@ -0,0 +1,6 @@ +a: + rank: 'a' + next: 'b' + rankup: + ranksgui: + rows: 4 \ No newline at end of file