Bump spigot api version, fix BukkitService.runTaskTimerAsynchronously() #2150

This commit is contained in:
Gabriele C 2020-07-10 20:55:15 +02:00
parent 1cd0ce17a5
commit 990830c395
4 changed files with 24 additions and 16 deletions

View File

@ -64,7 +64,7 @@
<maven.minimumVersion>3.3.9</maven.minimumVersion> <maven.minimumVersion>3.3.9</maven.minimumVersion>
<!-- Dependencies versions --> <!-- Dependencies versions -->
<spigot.version>1.15.2-R0.1-SNAPSHOT</spigot.version> <spigot.version>1.16.1-R0.1-SNAPSHOT</spigot.version>
<!-- Versioning properties --> <!-- Versioning properties -->
<project.outputName>AuthMe</project.outputName> <project.outputName>AuthMe</project.outputName>

View File

@ -17,6 +17,7 @@ import org.apache.logging.log4j.LogManager;
import org.bstats.bukkit.Metrics; import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import javax.inject.Inject; import javax.inject.Inject;
import java.util.List; import java.util.List;
@ -94,16 +95,19 @@ public class OnStartupTasks {
if (!settings.getProperty(RECALL_PLAYERS)) { if (!settings.getProperty(RECALL_PLAYERS)) {
return; return;
} }
bukkitService.runTaskTimerAsynchronously(() -> { bukkitService.runTaskTimerAsynchronously(new BukkitRunnable() {
List<String> loggedPlayersWithEmptyMail = dataSource.getLoggedPlayersWithEmptyMail(); @Override
bukkitService.runTask(() -> { public void run() {
for (String playerWithoutMail : loggedPlayersWithEmptyMail) { List<String> loggedPlayersWithEmptyMail = dataSource.getLoggedPlayersWithEmptyMail();
Player player = bukkitService.getPlayerExact(playerWithoutMail); bukkitService.runTask(() -> {
if (player != null) { for (String playerWithoutMail : loggedPlayersWithEmptyMail) {
messages.send(player, MessageKey.ADD_EMAIL_MESSAGE); Player player = bukkitService.getPlayerExact(playerWithoutMail);
if (player != null) {
messages.send(player, MessageKey.ADD_EMAIL_MESSAGE);
}
} }
} });
}); }
}, 1, TICKS_PER_MINUTE * settings.getProperty(EmailSettings.DELAY_RECALL)); }, 1, TICKS_PER_MINUTE * settings.getProperty(EmailSettings.DELAY_RECALL));
} }
} }

View File

@ -14,6 +14,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Event; import org.bukkit.event.Event;
import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.scheduler.BukkitTask; import org.bukkit.scheduler.BukkitTask;
@ -152,9 +153,10 @@ public class BukkitService implements SettingsDependent {
* @param period the ticks to wait between runs * @param period the ticks to wait between runs
* @return a BukkitTask that contains the id number * @return a BukkitTask that contains the id number
* @throws IllegalArgumentException if task is null * @throws IllegalArgumentException if task is null
* @throws IllegalStateException if this was already scheduled
*/ */
public BukkitTask runTaskTimerAsynchronously(Runnable task, long delay, long period) { public BukkitTask runTaskTimerAsynchronously(BukkitRunnable task, long delay, long period) {
return Bukkit.getScheduler().runTaskTimerAsynchronously(authMe, task, delay, period); return task.runTaskTimerAsynchronously(authMe, delay, period);
} }
/** /**
@ -167,7 +169,6 @@ public class BukkitService implements SettingsDependent {
* @return a BukkitTask that contains the id number * @return a BukkitTask that contains the id number
* @throws IllegalArgumentException if plugin is null * @throws IllegalArgumentException if plugin is null
* @throws IllegalStateException if this was already scheduled * @throws IllegalStateException if this was already scheduled
* @see BukkitScheduler#runTaskTimer(org.bukkit.plugin.Plugin, Runnable, long, long)
*/ */
public BukkitTask runTaskTimer(BukkitRunnable task, long delay, long period) { public BukkitTask runTaskTimer(BukkitRunnable task, long delay, long period) {
return task.runTaskTimer(authMe, delay, period); return task.runTaskTimer(authMe, delay, period);

View File

@ -226,18 +226,21 @@ public class BukkitServiceTest {
@Test @Test
public void shouldRunTaskTimerAsynchronously() { public void shouldRunTaskTimerAsynchronously() {
// given // given
Runnable task = () -> {/* */}; BukkitRunnable task = new BukkitRunnable() {
@Override
public void run() {
}
};
long delay = 20L; long delay = 20L;
long period = 4000L; long period = 4000L;
BukkitTask bukkitTask = mock(BukkitTask.class); BukkitTask bukkitTask = mock(BukkitTask.class);
given(scheduler.runTaskTimerAsynchronously(authMe, task, delay, period)).willReturn(bukkitTask); given(task.runTaskTimerAsynchronously(authMe, delay, period)).willReturn(bukkitTask);
// when // when
BukkitTask resultingTask = bukkitService.runTaskTimerAsynchronously(task, delay, period); BukkitTask resultingTask = bukkitService.runTaskTimerAsynchronously(task, delay, period);
// then // then
assertThat(resultingTask, equalTo(bukkitTask)); assertThat(resultingTask, equalTo(bukkitTask));
verify(scheduler).runTaskTimerAsynchronously(authMe, task, delay, period);
} }
@Test @Test