1
0
mirror of https://github.com/nkomarn/harbor.git synced 2024-09-27 22:17:31 +02:00

🌟 Fix up chat messages and add forceskip!

This commit is contained in:
Mykyta 2019-12-29 12:28:06 -08:00
parent 71dbe4e164
commit 0c616035c6
No known key found for this signature in database
GPG Key ID: C147E30C19EA3570
9 changed files with 62 additions and 22 deletions

10
pom.xml
View File

@ -20,6 +20,10 @@
<id>ess-repo</id>
<url>https://ci.ender.zone/plugin/repository/everything/</url>
</repository>
<repository>
<id>placeholderapi</id>
<url>http://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository>
</repositories>
<dependencies>
@ -35,6 +39,12 @@
<version>2.17.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>2.10.4</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>

View File

@ -11,7 +11,6 @@ import xyz.nkomarn.Harbor.util.Config;
import xyz.nkomarn.Harbor.util.Metrics;
public class Harbor extends JavaPlugin {
public static Harbor instance;
public static String version = "1.6.2";
public static Essentials essentials;
@ -32,7 +31,6 @@ public class Harbor extends JavaPlugin {
new Metrics(this);
// Essentials hook
essentials = (Essentials) Bukkit.getServer().getPluginManager()
.getPlugin("Essentials");
essentials = (Essentials) getServer().getPluginManager().getPlugin("Essentials");
}
}

View File

@ -4,18 +4,23 @@ import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.ChatColor;
import org.bukkit.Sound;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import xyz.nkomarn.Harbor.Harbor;
import xyz.nkomarn.Harbor.task.AccelerateNightTask;
import xyz.nkomarn.Harbor.task.Checker;
import xyz.nkomarn.Harbor.util.Config;
import xyz.nkomarn.Harbor.util.Updater;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ExecutionException;
public class HarborCommand implements CommandExecutor {
public class HarborCommand implements TabExecutor {
@Override
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) {
@ -38,6 +43,22 @@ public class HarborCommand implements CommandExecutor {
+ "&7Reloaded configuration."));
return true;
}
else if (args[0].equalsIgnoreCase("forceskip")) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix
+ "&7This command requires you to be a player."));
return true;
}
Player player = (Player) sender;
World world = player.getWorld();
Checker.skippingWorlds.add(world);
new AccelerateNightTask(world).runTaskTimer(Harbor.instance, 0L, 1);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix
+ "&7Forcing night skip in your world."));
return true;
}
else if (args[0].equalsIgnoreCase("update")) {
// Fancy actionbar stuff
@ -73,12 +94,11 @@ public class HarborCommand implements CommandExecutor {
} catch (ExecutionException | InterruptedException e) {
e.printStackTrace();
}
return true;
} else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + "&7You're already running "
+ "the latest version of Harbor. Great work!"));
return true;
}
return true;
}
// Otherwise, send unrecognized argument messages
@ -86,4 +106,11 @@ public class HarborCommand implements CommandExecutor {
+ Config.getString("messages.miscellaneous.unrecognized")));
return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
if (!sender.hasPermission("harbor.admin")) return null;
if (args.length != 1) return null;
return Arrays.asList("forceskip", "reload", "update");
}
}

View File

@ -1,23 +1,31 @@
package xyz.nkomarn.Harbor.listener;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerBedEnterEvent;
import org.bukkit.event.player.PlayerBedLeaveEvent;
import xyz.nkomarn.Harbor.Harbor;
import xyz.nkomarn.Harbor.task.Checker;
import xyz.nkomarn.Harbor.util.Config;
import xyz.nkomarn.Harbor.util.Messages;
public class BedListener implements Listener {
@EventHandler
@EventHandler(ignoreCancelled = true)
public void onBedEnter(final PlayerBedEnterEvent event) {
if (event.getBedEnterResult() != PlayerBedEnterEvent.BedEnterResult.OK) return;
Messages.sendWorldChatMessage(event.getBed().getWorld(),
Config.getString("messages.chat.sleeping")
.replace("[player]", event.getPlayer().getName())
.replace("[displayname]", event.getPlayer().getDisplayName()));
if (Checker.skippingWorlds.contains(event.getPlayer().getWorld())) return;
Bukkit.getScheduler().runTaskLater(Harbor.instance, () -> {
Messages.sendWorldChatMessage(event.getBed().getWorld(),
Config.getString("messages.chat.sleeping")
.replace("[player]", event.getPlayer().getName())
.replace("[displayname]", event.getPlayer().getDisplayName()));
}, 1);
}
@EventHandler
public void onBedLeave(final PlayerBedEnterEvent event) {
@EventHandler(ignoreCancelled = true)
public void onBedLeave(final PlayerBedLeaveEvent event) {
if (Checker.skippingWorlds.contains(event.getPlayer().getWorld())) return;
Messages.sendWorldChatMessage(event.getBed().getWorld(),
Config.getString("messages.chat.left")
.replace("[player]", event.getPlayer().getName())

View File

@ -9,7 +9,7 @@ import xyz.nkomarn.Harbor.util.Messages;
public class AccelerateNightTask extends BukkitRunnable {
private final World world;
AccelerateNightTask(final World world) {
public AccelerateNightTask(final World world) {
this.world = world;
}

View File

@ -15,7 +15,6 @@ import java.util.List;
import static java.util.stream.Collectors.toList;
public class Checker implements Runnable {
public static final List<World> skippingWorlds = new ArrayList<>();
@Override

View File

@ -30,7 +30,6 @@ import java.util.zip.GZIPOutputStream;
*/
@SuppressWarnings({"WeakerAccess", "unused"})
public class Metrics {
static {
// You can use the property to disable the check in your test environment
if (System.getProperty("bstats.relocatecheck") == null || !System.getProperty("bstats.relocatecheck").equals("false")) {

View File

@ -13,7 +13,6 @@ import java.util.concurrent.Future;
import java.util.stream.Collectors;
public class Updater {
public static String latest;
// Checks if an update is available

View File

@ -1,10 +1,10 @@
name: ${name}
name: Harbor
description: Harbor is a Spigot plugin that redefines how sleep works in your server, making it easier for all the online players to get in bed quickly and skip through the night!
main: xyz.nkomarn.${name}.${name}
version: ${version}
main: xyz.nkomarn.Harbor.Harbor
version: 1.6.2
author: TechToolbox (@nkomarn)
website: https://nkomarn.xyz
softdepend: [Essentials]
softdepend: [Essentials, PlaceholderAPI]
api-version: 1.14
commands: