diff --git a/authme-core/src/main/java/fr/xephi/authme/command/executable/authme/GetEmailCommand.java b/authme-core/src/main/java/fr/xephi/authme/command/executable/authme/GetEmailCommand.java index 48c06322e5..f5026c8b01 100644 --- a/authme-core/src/main/java/fr/xephi/authme/command/executable/authme/GetEmailCommand.java +++ b/authme-core/src/main/java/fr/xephi/authme/command/executable/authme/GetEmailCommand.java @@ -5,6 +5,7 @@ import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.service.CommonService; +import fr.xephi.authme.util.Utils; import org.bukkit.command.CommandSender; import javax.inject.Inject; @@ -26,10 +27,12 @@ public void executeCommand(CommandSender sender, List arguments) { String playerName = arguments.isEmpty() ? sender.getName() : arguments.get(0); DataSourceValue email = dataSource.getEmail(playerName); - if (email.rowExists()) { - commonService.send(sender, MessageKey.ADMIN_EMAIL_SHOW, playerName, email.getValue()); - } else { + if (!email.rowExists()) { commonService.send(sender, MessageKey.UNKNOWN_USER); + } else if (Utils.isEmailEmpty(email.getValue())) { + commonService.send(sender, MessageKey.SHOW_NO_EMAIL); + } else { + commonService.send(sender, MessageKey.ADMIN_EMAIL_SHOW, playerName, email.getValue()); } } } diff --git a/authme-core/src/test/java/fr/xephi/authme/command/executable/authme/GetEmailCommandTest.java b/authme-core/src/test/java/fr/xephi/authme/command/executable/authme/GetEmailCommandTest.java index f1963bf225..8194194bf1 100644 --- a/authme-core/src/test/java/fr/xephi/authme/command/executable/authme/GetEmailCommandTest.java +++ b/authme-core/src/test/java/fr/xephi/authme/command/executable/authme/GetEmailCommandTest.java @@ -61,4 +61,18 @@ void shouldReturnEmail() { // then verify(service).send(eq(sender), eq(MessageKey.ADMIN_EMAIL_SHOW), eq(user), eq(email)); } + + @Test + void shouldReportMissingEmail() { + // given + String user = "userWithoutEmail"; + given(dataSource.getEmail(user)).willReturn(DataSourceValueImpl.of(null)); + CommandSender sender = mock(CommandSender.class); + + // when + command.executeCommand(sender, Collections.singletonList(user)); + + // then + verify(service).send(sender, MessageKey.SHOW_NO_EMAIL); + } }