8 Commits

Author SHA1 Message Date
YouHaveTrouble 3833c5ce43 link to modrinth 2024-06-05 20:22:49 +02:00
YouHaveTrouble fec112511c Merge remote-tracking branch 'origin/master' 2024-06-05 20:19:39 +02:00
YouHaveTrouble c65e68dcfc bump version 2024-06-05 20:12:47 +02:00
YouHaveTrouble b7587970c0 command to display which plugins have hooks registered 2024-06-05 20:12:24 +02:00
YouHaveTrouble 48f5c337d7 no need for remapping :) 2024-06-05 20:11:02 +02:00
YouHaveTrouble 6017feccec Update readme.md 2024-04-18 10:28:29 +02:00
granny 31fa7b02b9 add logs when registering services (#2)
* add logs when registering services

* Update YardWatch.java
2024-04-18 10:27:34 +02:00
YouHaveTrouble eb9ebb1fb3 add LWC to softdepends 2024-04-16 21:59:40 +02:00
5 changed files with 117 additions and 3 deletions
+10 -1
View File
@@ -6,7 +6,7 @@
<groupId>me.youhavetrouble</groupId>
<artifactId>YardWatch</artifactId>
<version>1.1.0</version>
<version>1.2.0</version>
<packaging>jar</packaging>
<name>YardWatch</name>
@@ -39,6 +39,15 @@
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<paperweight-mappings-namespace>mojang</paperweight-mappings-namespace>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
+4 -2
View File
@@ -3,10 +3,12 @@ Implementation of [YardWatchAPI](https://github.com/YouHaveTrouble/YardWatchAPI)
of supported plugins implements the API itself, then this plugin will stop providing its implementation to allow the
plugin to take over.
If you're a developer looking for information how to implement YardWatchAPI in your plugin, see
[YardWatchAPI](https://github.com/YouHaveTrouble/YardWatchAPI)
## Downloads
You can download YardWatch plugin on [Modrinth](https://modrinth.com/plugin/yardwatch).
## Requirements
- Java 17
- Minecraft 1.16+
@@ -14,7 +16,7 @@ If you're a developer looking for information how to implement YardWatchAPI in y
## Implementations for:
- [GriefPrevention (v16+)](https://www.spigotmc.org/resources/griefprevention.1884/)
- [WorldGuard (7.0.0+)](https://enginehub.org/worldguard#downloads)
- LWCX
- [LWCX](https://www.spigotmc.org/resources/lwc-extended.69551/)
- [FactionsUUID](https://www.spigotmc.org/resources/factionsuuid.1035/)
- [SuperiorSkyBlock](https://bg-software.com/superiorskyblock/)
- [Towny](https://github.com/TownyAdvanced/Towny)
@@ -1,11 +1,13 @@
package me.youhavetrouble.yardwatch;
import me.youhavetrouble.yardwatch.commands.YardWatchCommand;
import me.youhavetrouble.yardwatch.hooks.FactionsUUIDProtection;
import me.youhavetrouble.yardwatch.hooks.GriefPreventionProtection;
import me.youhavetrouble.yardwatch.hooks.LWCXProtection;
import me.youhavetrouble.yardwatch.hooks.SuperiorSkyBlockProtection;
import me.youhavetrouble.yardwatch.hooks.TownyProtection;
import me.youhavetrouble.yardwatch.hooks.WorldGuardProtection;
import org.bukkit.command.PluginCommand;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.ServicePriority;
@@ -17,42 +19,60 @@ public final class YardWatch extends JavaPlugin {
@Override
public void onEnable() {
PluginCommand command = getCommand("yardwatch");
if (command != null) {
command.setExecutor(new YardWatchCommand(this));
}
if (shouldRegisterService("WorldGuard")) {
getLogger().info("Registering WorldGuard service.");
getServer().getServicesManager().register(
Protection.class, new WorldGuardProtection(this), this, ServicePriority.Normal
);
}
if (shouldRegisterService("GriefPrevention")) {
getLogger().info("Registering GriefPrevention service.");
getServer().getServicesManager().register(
Protection.class, new GriefPreventionProtection(this), this, ServicePriority.Normal
);
}
if (shouldRegisterService("LWC")) {
getLogger().info("Registering LWC service.");
getServer().getServicesManager().register(
Protection.class, new LWCXProtection(this), this, ServicePriority.Normal
);
}
if (shouldRegisterService("Factions")) {
getLogger().info("Registering Factions service.");
getServer().getServicesManager().register(
Protection.class, new FactionsUUIDProtection(this), this, ServicePriority.Normal
);
}
if (shouldRegisterService("SuperiorSkyblock2")) {
getLogger().info("Registering SuperiorSkyblock2 service.");
getServer().getServicesManager().register(
Protection.class, new SuperiorSkyBlockProtection(this), this, ServicePriority.Normal
);
}
if (shouldRegisterService("Towny")) {
getLogger().info("Registering Towny service.");
getServer().getServicesManager().register(
Protection.class, new TownyProtection(this), this, ServicePriority.Normal
);
}
List<RegisteredServiceProvider<?>> registrations = getServer().getServicesManager().getRegistrations(this);
if (registrations.isEmpty()) {
getLogger().info("Registered 0 services. This plugin can be safely removed.");
} else {
getLogger().info("Successfully registered " + registrations.size() + " services.");
}
}
/**
@@ -0,0 +1,75 @@
package me.youhavetrouble.yardwatch.commands;
import me.youhavetrouble.yardwatch.Protection;
import me.youhavetrouble.yardwatch.YardWatch;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.util.StringUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.*;
public class YardWatchCommand implements TabExecutor {
private final YardWatch plugin;
private final String version;
public YardWatchCommand(YardWatch plugin) {
this.plugin = plugin;
this.version = plugin.getDescription().getVersion();
}
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 0) {
sendDefault(sender);
return true;
}
if (args[0].equalsIgnoreCase("hooks")) {
sendHooks(sender);
return true;
}
return false;
}
@Override
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
List<String> completions = new ArrayList<>();
if (args.length == 1) {
completions.add("hooks");
return StringUtil.copyPartialMatches(args[0], completions, new ArrayList<>());
}
return completions;
}
private void sendDefault(CommandSender sender) {
sender.sendMessage("YardWatch " + version);
}
private void sendHooks(CommandSender sender) {
Map<String, Integer> hooks = new HashMap<>();
Collection<RegisteredServiceProvider<Protection>> protections = plugin.getServer().getServicesManager().getRegistrations(Protection.class);
for (RegisteredServiceProvider<Protection> protection : protections) {
hooks.merge(protection.getPlugin().getName(), 1, Integer::sum);
}
if (hooks.isEmpty()) {
sender.sendMessage("No hooks registered.");
return;
}
sender.sendMessage("Hooks:");
for (Map.Entry<String, Integer> entry : hooks.entrySet()) {
String hook = entry.getValue() == 1 ? "hook" : "hooks";
sender.sendMessage(String.format("%s -> %s %s registered", entry.getKey(), entry.getValue(), hook));
}
}
}
+8
View File
@@ -13,3 +13,11 @@ softdepend:
- "Towny"
- "Factions"
- "SuperiorSkyblock2"
- "LWC"
commands:
yardwatch:
description: "YardWatch command"
usage: "/yardwatch <arg>"
permission: "yardwatch.command"
aliases:
- "yw"