#723 Let LimboPlayer task manager decide which message key to use
- Pass boolean (is registered) value and determine internally which message key (email registration vs. regular) to use in the message task
This commit is contained in:
parent
5cbb83e153
commit
15886fb517
@ -93,13 +93,12 @@ public class UnregisterAdminCommand implements ExecutableCommand {
|
|||||||
* @param target the player that was unregistered
|
* @param target the player that was unregistered
|
||||||
*/
|
*/
|
||||||
private void applyUnregisteredEffectsAndTasks(Player target) {
|
private void applyUnregisteredEffectsAndTasks(Player target) {
|
||||||
// TODO ljacqu 20160612: Remove use of Utils method and behave according to settings
|
// TODO #765: Remove use of Utils method and behave according to settings
|
||||||
Utils.teleportToSpawn(target);
|
Utils.teleportToSpawn(target);
|
||||||
|
|
||||||
limboCache.addLimboPlayer(target);
|
limboCache.addLimboPlayer(target);
|
||||||
limboPlayerTaskManager.registerTimeoutTask(target);
|
limboPlayerTaskManager.registerTimeoutTask(target);
|
||||||
limboPlayerTaskManager.registerMessageTask(target.getName(),
|
limboPlayerTaskManager.registerMessageTask(target.getName(), false);
|
||||||
MessageKey.REGISTER_MESSAGE);
|
|
||||||
|
|
||||||
final int timeout = commandService.getProperty(RestrictionSettings.TIMEOUT) * TICKS_PER_SECOND;
|
final int timeout = commandService.getProperty(RestrictionSettings.TIMEOUT) * TICKS_PER_SECOND;
|
||||||
if (commandService.getProperty(RegistrationSettings.APPLY_BLIND_EFFECT)) {
|
if (commandService.getProperty(RegistrationSettings.APPLY_BLIND_EFFECT)) {
|
||||||
|
|||||||
@ -195,16 +195,7 @@ public class AsynchronousJoin implements AsynchronousProcess {
|
|||||||
|
|
||||||
// Timeout and message task
|
// Timeout and message task
|
||||||
limboPlayerTaskManager.registerTimeoutTask(player);
|
limboPlayerTaskManager.registerTimeoutTask(player);
|
||||||
|
limboPlayerTaskManager.registerMessageTask(name, isAuthAvailable);
|
||||||
MessageKey msg;
|
|
||||||
if (isAuthAvailable) {
|
|
||||||
msg = MessageKey.LOGIN_MESSAGE;
|
|
||||||
} else {
|
|
||||||
msg = service.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)
|
|
||||||
? MessageKey.REGISTER_EMAIL_MESSAGE
|
|
||||||
: MessageKey.REGISTER_MESSAGE;
|
|
||||||
}
|
|
||||||
limboPlayerTaskManager.registerMessageTask(name, msg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isPlayerUnrestricted(String name) {
|
private boolean isPlayerUnrestricted(String name) {
|
||||||
|
|||||||
@ -21,7 +21,6 @@ import fr.xephi.authme.security.PasswordSecurity;
|
|||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
import fr.xephi.authme.settings.properties.DatabaseSettings;
|
import fr.xephi.authme.settings.properties.DatabaseSettings;
|
||||||
import fr.xephi.authme.settings.properties.EmailSettings;
|
import fr.xephi.authme.settings.properties.EmailSettings;
|
||||||
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
|
||||||
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
||||||
import fr.xephi.authme.settings.properties.SecuritySettings;
|
import fr.xephi.authme.settings.properties.SecuritySettings;
|
||||||
import fr.xephi.authme.task.LimboPlayerTaskManager;
|
import fr.xephi.authme.task.LimboPlayerTaskManager;
|
||||||
@ -33,7 +32,6 @@ import org.bukkit.ChatColor;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -108,10 +106,7 @@ public class AsynchronousLogin implements AsynchronousProcess {
|
|||||||
service.send(player, MessageKey.USER_NOT_REGISTERED);
|
service.send(player, MessageKey.USER_NOT_REGISTERED);
|
||||||
|
|
||||||
// TODO ljacqu 20160612: Why is the message task being canceled and added again here?
|
// TODO ljacqu 20160612: Why is the message task being canceled and added again here?
|
||||||
MessageKey key = service.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)
|
limboPlayerTaskManager.registerMessageTask(name, false);
|
||||||
? MessageKey.REGISTER_EMAIL_MESSAGE
|
|
||||||
: MessageKey.REGISTER_MESSAGE;
|
|
||||||
limboPlayerTaskManager.registerMessageTask(name, key);
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -66,7 +66,7 @@ public class ProcessSynchronousPlayerLogout implements SynchronousProcess {
|
|||||||
}
|
}
|
||||||
|
|
||||||
limboPlayerTaskManager.registerTimeoutTask(player);
|
limboPlayerTaskManager.registerTimeoutTask(player);
|
||||||
limboPlayerTaskManager.registerMessageTask(name, MessageKey.LOGIN_MESSAGE);
|
limboPlayerTaskManager.registerMessageTask(name, true);
|
||||||
|
|
||||||
if (player.isInsideVehicle() && player.getVehicle() != null) {
|
if (player.isInsideVehicle() && player.getVehicle() != null) {
|
||||||
player.getVehicle().eject();
|
player.getVehicle().eject();
|
||||||
|
|||||||
@ -33,7 +33,7 @@ public class ProcessSyncEmailRegister implements SynchronousProcess {
|
|||||||
service.send(player, MessageKey.ACCOUNT_NOT_ACTIVATED);
|
service.send(player, MessageKey.ACCOUNT_NOT_ACTIVATED);
|
||||||
|
|
||||||
limboPlayerTaskManager.registerTimeoutTask(player);
|
limboPlayerTaskManager.registerTimeoutTask(player);
|
||||||
limboPlayerTaskManager.registerMessageTask(name, MessageKey.LOGIN_MESSAGE);
|
limboPlayerTaskManager.registerMessageTask(name, true);
|
||||||
|
|
||||||
player.saveData();
|
player.saveData();
|
||||||
if (!service.getProperty(SecuritySettings.REMOVE_SPAM_FROM_CONSOLE)) {
|
if (!service.getProperty(SecuritySettings.REMOVE_SPAM_FROM_CONSOLE)) {
|
||||||
|
|||||||
@ -81,7 +81,7 @@ public class ProcessSyncPasswordRegister implements SynchronousProcess {
|
|||||||
|
|
||||||
limboCache.updateLimboPlayer(player);
|
limboCache.updateLimboPlayer(player);
|
||||||
limboPlayerTaskManager.registerTimeoutTask(player);
|
limboPlayerTaskManager.registerTimeoutTask(player);
|
||||||
limboPlayerTaskManager.registerMessageTask(name, MessageKey.LOGIN_MESSAGE);
|
limboPlayerTaskManager.registerMessageTask(name, true);
|
||||||
|
|
||||||
if (player.isInsideVehicle() && player.getVehicle() != null) {
|
if (player.isInsideVehicle() && player.getVehicle() != null) {
|
||||||
player.getVehicle().eject();
|
player.getVehicle().eject();
|
||||||
|
|||||||
@ -64,7 +64,7 @@ public class AsynchronousUnregister implements AsynchronousProcess {
|
|||||||
}
|
}
|
||||||
limboCache.addLimboPlayer(player);
|
limboCache.addLimboPlayer(player);
|
||||||
limboPlayerTaskManager.registerTimeoutTask(player);
|
limboPlayerTaskManager.registerTimeoutTask(player);
|
||||||
limboPlayerTaskManager.registerMessageTask(name, MessageKey.REGISTER_MESSAGE);
|
limboPlayerTaskManager.registerMessageTask(name, false);
|
||||||
|
|
||||||
service.send(player, MessageKey.UNREGISTERED_SUCCESS);
|
service.send(player, MessageKey.UNREGISTERED_SUCCESS);
|
||||||
ConsoleLogger.info(player.getDisplayName() + " unregistered himself");
|
ConsoleLogger.info(player.getDisplayName() + " unregistered himself");
|
||||||
|
|||||||
@ -44,10 +44,12 @@ public class LimboPlayerTaskManager {
|
|||||||
* Registers a {@link MessageTask} for the given player name.
|
* Registers a {@link MessageTask} for the given player name.
|
||||||
*
|
*
|
||||||
* @param name the name of the player to schedule a repeating message task for
|
* @param name the name of the player to schedule a repeating message task for
|
||||||
* @param key the key of the message to display
|
* @param isRegistered whether the name is registered or not
|
||||||
|
* (false shows "please register", true shows "please log in")
|
||||||
*/
|
*/
|
||||||
public void registerMessageTask(String name, MessageKey key) {
|
public void registerMessageTask(String name, boolean isRegistered) {
|
||||||
final int interval = settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL);
|
final int interval = settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL);
|
||||||
|
final MessageKey key = getMessageKey(isRegistered);
|
||||||
if (interval > 0) {
|
if (interval > 0) {
|
||||||
final LimboPlayer limboPlayer = limboCache.getLimboPlayer(name);
|
final LimboPlayer limboPlayer = limboCache.getLimboPlayer(name);
|
||||||
if (limboPlayer == null) {
|
if (limboPlayer == null) {
|
||||||
@ -81,6 +83,22 @@ public class LimboPlayerTaskManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the appropriate message key according to the registration status and settings.
|
||||||
|
*
|
||||||
|
* @param isRegistered whether or not the username is registered
|
||||||
|
* @return the message key to display to the user
|
||||||
|
*/
|
||||||
|
private MessageKey getMessageKey(boolean isRegistered) {
|
||||||
|
if (isRegistered) {
|
||||||
|
return MessageKey.LOGIN_MESSAGE;
|
||||||
|
} else {
|
||||||
|
return settings.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)
|
||||||
|
? MessageKey.REGISTER_EMAIL_MESSAGE
|
||||||
|
: MessageKey.REGISTER_MESSAGE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Null-safe method to cancel a potentially existing task.
|
* Null-safe method to cancel a potentially existing task.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -67,9 +67,10 @@ public class LimboPlayerTaskManagerTest {
|
|||||||
BukkitTask bukkiTask = mock(BukkitTask.class);
|
BukkitTask bukkiTask = mock(BukkitTask.class);
|
||||||
given(bukkitService.runTask(any(MessageTask.class))).willReturn(bukkiTask);
|
given(bukkitService.runTask(any(MessageTask.class))).willReturn(bukkiTask);
|
||||||
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(12);
|
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(12);
|
||||||
|
given(settings.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
limboPlayerTaskManager.registerMessageTask(name, key);
|
limboPlayerTaskManager.registerMessageTask(name, false);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
verify(limboPlayer).setMessageTask(bukkiTask);
|
verify(limboPlayer).setMessageTask(bukkiTask);
|
||||||
@ -81,12 +82,10 @@ public class LimboPlayerTaskManagerTest {
|
|||||||
// given
|
// given
|
||||||
String name = "ghost";
|
String name = "ghost";
|
||||||
given(limboCache.getLimboPlayer(name)).willReturn(null);
|
given(limboCache.getLimboPlayer(name)).willReturn(null);
|
||||||
MessageKey key = MessageKey.REGISTER_MESSAGE;
|
|
||||||
given(messages.retrieve(key)).willReturn(new String[]{"Please register!"});
|
|
||||||
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(5);
|
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(5);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
limboPlayerTaskManager.registerMessageTask(name, key);
|
limboPlayerTaskManager.registerMessageTask(name, true);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
verify(limboCache).getLimboPlayer(name);
|
verify(limboCache).getLimboPlayer(name);
|
||||||
@ -100,14 +99,12 @@ public class LimboPlayerTaskManagerTest {
|
|||||||
String name = "Tester1";
|
String name = "Tester1";
|
||||||
LimboPlayer limboPlayer = mock(LimboPlayer.class);
|
LimboPlayer limboPlayer = mock(LimboPlayer.class);
|
||||||
given(limboCache.getLimboPlayer(name)).willReturn(limboPlayer);
|
given(limboCache.getLimboPlayer(name)).willReturn(limboPlayer);
|
||||||
MessageKey key = MessageKey.REGISTER_EMAIL_MESSAGE;
|
|
||||||
given(messages.retrieve(key)).willReturn(new String[]{"Please register!"});
|
|
||||||
BukkitTask bukkiTask = mock(BukkitTask.class);
|
BukkitTask bukkiTask = mock(BukkitTask.class);
|
||||||
given(bukkitService.runTask(any(MessageTask.class))).willReturn(bukkiTask);
|
given(bukkitService.runTask(any(MessageTask.class))).willReturn(bukkiTask);
|
||||||
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(0);
|
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(0);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
limboPlayerTaskManager.registerMessageTask(name, key);
|
limboPlayerTaskManager.registerMessageTask(name, true);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
verifyZeroInteractions(limboPlayer, bukkitService);
|
verifyZeroInteractions(limboPlayer, bukkitService);
|
||||||
@ -122,19 +119,20 @@ public class LimboPlayerTaskManagerTest {
|
|||||||
|
|
||||||
String name = "bobby";
|
String name = "bobby";
|
||||||
given(limboCache.getLimboPlayer(name)).willReturn(limboPlayer);
|
given(limboCache.getLimboPlayer(name)).willReturn(limboPlayer);
|
||||||
MessageKey key = MessageKey.REGISTER_EMAIL_MESSAGE;
|
given(messages.retrieve(MessageKey.REGISTER_EMAIL_MESSAGE))
|
||||||
given(messages.retrieve(key)).willReturn(new String[]{"Please register", "Use /register"});
|
.willReturn(new String[]{"Please register", "Use /register"});
|
||||||
|
|
||||||
BukkitTask bukkiTask = mock(BukkitTask.class);
|
BukkitTask bukkiTask = mock(BukkitTask.class);
|
||||||
given(bukkitService.runTask(any(MessageTask.class))).willReturn(bukkiTask);
|
given(bukkitService.runTask(any(MessageTask.class))).willReturn(bukkiTask);
|
||||||
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(8);
|
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(8);
|
||||||
|
given(settings.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
limboPlayerTaskManager.registerMessageTask(name, key);
|
limboPlayerTaskManager.registerMessageTask(name, false);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
verify(limboPlayer).setMessageTask(bukkiTask);
|
verify(limboPlayer).setMessageTask(bukkiTask);
|
||||||
verify(messages).retrieve(key);
|
verify(messages).retrieve(MessageKey.REGISTER_EMAIL_MESSAGE);
|
||||||
verify(existingMessageTask).cancel();
|
verify(existingMessageTask).cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user