diff --git a/src/main/java/de/chafficplugins/mininglevels/listeners/MiningLevelsCommandListener.java b/src/main/java/de/chafficplugins/mininglevels/listeners/MiningLevelsCommandListener.java index 130e285..730354a 100644 --- a/src/main/java/de/chafficplugins/mininglevels/listeners/MiningLevelsCommandListener.java +++ b/src/main/java/de/chafficplugins/mininglevels/listeners/MiningLevelsCommandListener.java @@ -84,12 +84,8 @@ public boolean onCommand(CommandSender sender, Command command, String label, St return true; } case "info" -> { - if(!hasOnePermissions(sender, "mininglevels.info")) { - sendMessage(sender, NO_PERMISSION); - return true; - } - LevelingCommands.info(sender); - return true; + sender.sendMessage("§aMining Levels by §c" + plugin.getDescription().getAuthors()); + sender.sendMessage("§aVersion: §c" + plugin.getDescription().getVersion()); } case "self" -> { if(!(sender instanceof Player)) { diff --git a/src/main/java/de/chafficplugins/mininglevels/listeners/commands/LevelingCommands.java b/src/main/java/de/chafficplugins/mininglevels/listeners/commands/LevelingCommands.java index c18d818..4aef3ee 100644 --- a/src/main/java/de/chafficplugins/mininglevels/listeners/commands/LevelingCommands.java +++ b/src/main/java/de/chafficplugins/mininglevels/listeners/commands/LevelingCommands.java @@ -74,21 +74,6 @@ public static void level(CommandSender sender, String[] args) { sendMessage(sender, USAGE_LEVEL); } - public static void info(CommandSender sender) { - if(!(sender instanceof Player player)) { - sendMessage(sender, NO_CONSOLE_COMMAND); - return; - } - MiningPlayer miningPlayer = MiningPlayer.getMiningPlayer(player.getUniqueId()); - if(miningPlayer == null) { - sendMessage(sender, ERROR_OCCURRED); - return; - } - MiningLevel miningLevel = miningPlayer.getLevel(); - sendMessage(sender, CURRENT_LEVEL, miningLevel.getName()); - sendMessage(sender, CURRENT_XP, String.valueOf(miningPlayer.getXp()), String.valueOf(miningLevel.getNextLevelXP())); - } - public static void leaderboard(CommandSender sender) { //sort miningPlayers by level and xp List miningPlayers = getSortedPlayers(); diff --git a/src/main/java/de/chafficplugins/mininglevels/utils/ConfigStrings.java b/src/main/java/de/chafficplugins/mininglevels/utils/ConfigStrings.java index a90e6a1..d096c3a 100644 --- a/src/main/java/de/chafficplugins/mininglevels/utils/ConfigStrings.java +++ b/src/main/java/de/chafficplugins/mininglevels/utils/ConfigStrings.java @@ -17,7 +17,6 @@ public class ConfigStrings { public final static String PERMISSION_RELOAD = "mininglevels.reload"; public final static String PERMISSION_EDITOR = "mininglevels.editor"; public final static String PERMISSIONS_LEADERBOARD = "mininglevels.leaderboard"; - public final static String PERMISSION_INFO = "mininglevels.info"; //Configuration public final static String LVL_UP_SOUND = "levelup_sound"; diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index aa4665a..dc9392b 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -16,6 +16,3 @@ commands: - mr usage: /miningrewards permissions: - mininglevels.info: - description: Allows the player to view their mining level and XP - default: true diff --git a/src/test/java/de/chafficplugins/mininglevels/listeners/commands/InfoCommandTest.java b/src/test/java/de/chafficplugins/mininglevels/listeners/commands/InfoCommandTest.java deleted file mode 100644 index 775b21e..0000000 --- a/src/test/java/de/chafficplugins/mininglevels/listeners/commands/InfoCommandTest.java +++ /dev/null @@ -1,133 +0,0 @@ -package de.chafficplugins.mininglevels.listeners.commands; - -import de.chafficplugins.mininglevels.api.MiningLevel; -import de.chafficplugins.mininglevels.api.MiningPlayer; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockbukkit.mockbukkit.MockBukkit; -import org.mockbukkit.mockbukkit.ServerMock; -import org.mockbukkit.mockbukkit.entity.PlayerMock; - -import java.util.UUID; - -import static org.junit.jupiter.api.Assertions.*; - -/** - * Tests for the /mininglevels info command logic. - *

- * Since CrucialLib's Localizer is not available in tests, we verify that - * the data retrieval and state used by the info command is correct: - * the player's MiningPlayer exists and exposes the expected level and XP. - */ -class InfoCommandTest { - - private static ServerMock server; - - @BeforeAll - static void setUpServer() { - server = MockBukkit.mock(); - } - - @AfterAll - static void tearDown() { - MockBukkit.unmock(); - } - - @BeforeEach - void setUp() { - MiningPlayer.miningPlayers.clear(); - MiningLevel.miningLevels.clear(); - MiningLevel.miningLevels.add(new MiningLevel("Beginner", 100, 0)); - MiningLevel.miningLevels.add(new MiningLevel("Apprentice", 300, 1)); - MiningLevel.miningLevels.add(new MiningLevel("Expert", 500, 2)); - } - - @Test - void infoCommand_playerHasLevel0_shouldShowBeginnerLevelAndZeroXp() { - PlayerMock mockPlayer = server.addPlayer(); - MiningPlayer mp = new MiningPlayer(mockPlayer.getUniqueId(), 0, 0); - - MiningLevel level = mp.getLevel(); - assertNotNull(level); - assertEquals("Beginner", level.getName()); - assertEquals(0, mp.getXp()); - assertEquals(100, level.getNextLevelXP()); - } - - @Test - void infoCommand_playerHasLevel1WithXp_shouldShowApprenticeAndXp() { - PlayerMock mockPlayer = server.addPlayer(); - MiningPlayer mp = new MiningPlayer(mockPlayer.getUniqueId(), 1, 150); - - MiningLevel level = mp.getLevel(); - assertNotNull(level); - assertEquals("Apprentice", level.getName()); - assertEquals(150, mp.getXp()); - assertEquals(300, level.getNextLevelXP()); - } - - @Test - void infoCommand_playerAtMaxLevel_shouldShowExpertLevel() { - PlayerMock mockPlayer = server.addPlayer(); - MiningPlayer mp = new MiningPlayer(mockPlayer.getUniqueId(), 2, 400); - - MiningLevel level = mp.getLevel(); - assertNotNull(level); - assertEquals("Expert", level.getName()); - assertEquals(400, mp.getXp()); - assertEquals(500, level.getNextLevelXP()); - } - - @Test - void infoCommand_noMiningPlayer_shouldReturnNull() { - PlayerMock mockPlayer = server.addPlayer(); - - MiningPlayer mp = MiningPlayer.getMiningPlayer(mockPlayer.getUniqueId()); - assertNull(mp); - } - - @Test - void infoCommand_afterLevelChange_shouldReflectNewLevel() { - PlayerMock mockPlayer = server.addPlayer(); - MiningPlayer mp = new MiningPlayer(mockPlayer.getUniqueId(), 0, 50); - - assertEquals("Beginner", mp.getLevel().getName()); - assertEquals(50, mp.getXp()); - - mp.setLevel(2); - mp.setXp(450); - - assertEquals("Expert", mp.getLevel().getName()); - assertEquals(450, mp.getXp()); - } - - @Test - void infoCommand_requiresPlayerSender() { - // The info command should only work for Player senders. - // Console senders should get a "no console command" response. - // Verified by the instanceof Player check in LevelingCommands.info(). - UUID consoleUUID = UUID.randomUUID(); - MiningPlayer mp = MiningPlayer.getMiningPlayer(consoleUUID); - assertNull(mp, "Console has no MiningPlayer"); - } - - @Test - void infoCommand_correctPlayerLookup_shouldFindRightPlayer() { - PlayerMock player1 = server.addPlayer(); - PlayerMock player2 = server.addPlayer(); - new MiningPlayer(player1.getUniqueId(), 0, 25); - new MiningPlayer(player2.getUniqueId(), 2, 350); - - MiningPlayer mp1 = MiningPlayer.getMiningPlayer(player1.getUniqueId()); - MiningPlayer mp2 = MiningPlayer.getMiningPlayer(player2.getUniqueId()); - - assertNotNull(mp1); - assertNotNull(mp2); - assertEquals("Beginner", mp1.getLevel().getName()); - assertEquals(25, mp1.getXp()); - assertEquals("Expert", mp2.getLevel().getName()); - assertEquals(350, mp2.getXp()); - } -}