Thunderstorm looping fix

Also some small cleanup and vanish checking for bed messages.
This commit is contained in:
Mykyta 2020-04-19 06:53:23 -07:00
parent 737c9bdc40
commit 7c8819bb35
No known key found for this signature in database
GPG Key ID: C147E30C19EA3570
3 changed files with 22 additions and 20 deletions

View File

@ -20,17 +20,17 @@ public class HarborCommand implements TabExecutor {
final String prefix = Config.getString("messages.miscellaneous.chat-prefix");
if (args.length < 1 || !sender.hasPermission("harbor.admin")) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + "&7Harbor version "
+ Harbor.version + " by TechToolbox (@nkomarn)."));
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', String.format(
"%sHarbor version %s by TechToolbox (@nkomarn).", prefix, Harbor.version)));
} else if (args[0].equalsIgnoreCase("reload")) {
Harbor.getHarbor().reloadConfig();
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix
+ "&7Reloaded configuration."));
+ "Reloaded configuration."));
}
else if (args[0].equalsIgnoreCase("forceskip")) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix
+ "&7This command requires you to be a player."));
+ "This command requires you to be a player."));
return true;
}
@ -39,14 +39,13 @@ public class HarborCommand implements TabExecutor {
if (Checker.skippingWorlds.contains(world)) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix
+ "&7This world's time is already being accelerated."));
return true;
+ "This world's time is already being accelerated."));
} else {
Checker.skippingWorlds.add(world);
new AccelerateNightTask(world).runTaskTimer(Harbor.getHarbor(), 0L, 1);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix
+ "Forcing night skip in your world."));
}
Checker.skippingWorlds.add(world);
new AccelerateNightTask(world).runTaskTimer(Harbor.getHarbor(), 0L, 1);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix
+ "&7Forcing night skip in your world."));
} else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix
+ Config.getString("messages.miscellaneous.unrecognized-command")));

View File

@ -22,6 +22,7 @@ public class BedListener implements Listener {
public void onBedEnter(final PlayerBedEnterEvent event) {
if (event.getBedEnterResult() != PlayerBedEnterEvent.BedEnterResult.OK) return;
if (Checker.skippingWorlds.contains(event.getPlayer().getWorld())) return;
if (Checker.isVanished(event.getPlayer())) return;
Bukkit.getScheduler().runTaskLater(Harbor.getHarbor(), () -> {
final UUID playerUuid = event.getPlayer().getUniqueId();
@ -39,6 +40,7 @@ public class BedListener implements Listener {
@EventHandler(ignoreCancelled = true)
public void onBedLeave(final PlayerBedLeaveEvent event) {
if (Checker.skippingWorlds.contains(event.getPlayer().getWorld())) return;
if (Checker.isVanished(event.getPlayer())) return;
Bukkit.getScheduler().runTaskLater(Harbor.getHarbor(), () -> {
final UUID playerUuid = event.getPlayer().getUniqueId();

View File

@ -14,6 +14,14 @@ public class AccelerateNightTask extends BukkitRunnable {
public AccelerateNightTask(final World world) {
this.world = world;
Messages.sendRandomChatMessage(world, "messages.chat.night-skipping");
if (Config.getBoolean("night-skip.clear-rain")) {
world.setStorm(false);
}
if (Config.getBoolean("night-skip.clear-thunder")) {
world.setThundering(false);
}
}
@Override
@ -29,19 +37,12 @@ public class AccelerateNightTask extends BukkitRunnable {
}
if (time >= (dayTime - timeRate * 1.5) && time <= dayTime) {
if (Config.getBoolean("night-skip.clear-rain")) {
world.setStorm(false);
}
if (Config.getBoolean("night-skip.clear-thunder")) {
world.setThundering(false);
}
if (Config.getBoolean("night-skip.reset-phantom-statistic")) {
world.getPlayers().forEach(player -> player.setStatistic(Statistic.TIME_SINCE_REST, 0));
}
Bukkit.getScheduler().runTaskLaterAsynchronously(Harbor.getHarbor(), () -> Checker.skippingWorlds.remove(world), 20);
Bukkit.getScheduler().runTaskLaterAsynchronously(Harbor.getHarbor(),
() -> Checker.skippingWorlds.remove(world), 20);
Messages.sendRandomChatMessage(world, "messages.chat.night-skipped");
this.cancel();
} else {