From 1f5c7578f27553808a116c3576641cb48f7db041 Mon Sep 17 00:00:00 2001 From: Dennis van den Brock Date: Fri, 30 Aug 2024 22:24:12 +0200 Subject: [PATCH 1/6] Added `block_break` WebHook --- .../serverapi/webhooks/RegisterWebHooks.java | 4 +++ .../serverapi/webhooks/WebHookEnum.java | 3 +- .../serverapi/webhooks/block/BlockBreak.java | 34 +++++++++++++++++++ src/main/resources/config.yml | 1 + 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/shweit/serverapi/webhooks/block/BlockBreak.java diff --git a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java index 0ac4569..033f9f6 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java +++ b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java @@ -1,6 +1,7 @@ package com.shweit.serverapi.webhooks; import com.shweit.serverapi.utils.Logger; +import com.shweit.serverapi.webhooks.block.BlockBreak; import com.shweit.serverapi.webhooks.server.PluginDisable; import com.shweit.serverapi.webhooks.server.PluginEnable; import com.shweit.serverapi.webhooks.server.ServerStart; @@ -37,6 +38,9 @@ public void registerWebHooks(final FileConfiguration config) { new PluginEnable().register(); Logger.debug("Registered plugin_enable WebHook"); + + new BlockBreak().register(); + Logger.debug("Registered block_break WebHook"); } public static void sendToAllUrls(final JSONObject jsonObject) { diff --git a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java index 90c4e81..df88fbe 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java +++ b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java @@ -7,7 +7,8 @@ public enum WebHookEnum { SERVER_START("server_start", "Triggered when the server starts"), SERVER_STOP("server_stop", "Triggered when the server stops"), PLUGIN_DISABLE("plugin_disable", "Triggered when a plugin is disabled"), - PLUGIN_ENABLE("plugin_enable", "Triggered when a plugin is enabled"),; + PLUGIN_ENABLE("plugin_enable", "Triggered when a plugin is enabled"), + BLOCK_BREAK("block_break", "Triggered when a block is broken"),; public final String label; public final String description; diff --git a/src/main/java/com/shweit/serverapi/webhooks/block/BlockBreak.java b/src/main/java/com/shweit/serverapi/webhooks/block/BlockBreak.java new file mode 100644 index 0000000..ff77ec2 --- /dev/null +++ b/src/main/java/com/shweit/serverapi/webhooks/block/BlockBreak.java @@ -0,0 +1,34 @@ +package com.shweit.serverapi.webhooks.block; + +import com.shweit.serverapi.MinecraftServerAPI; +import com.shweit.serverapi.webhooks.RegisterWebHooks; +import com.shweit.serverapi.webhooks.WebHook; +import com.shweit.serverapi.webhooks.WebHookEnum; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBreakEvent; +import org.json.JSONObject; + +public final class BlockBreak implements WebHook, Listener { + + private final String eventName = WebHookEnum.BLOCK_BREAK.label; + + @Override + public void register() { + if (RegisterWebHooks.doActivateWebhook(eventName)) { + MinecraftServerAPI plugin = MinecraftServerAPI.getInstance(); + plugin.getServer().getPluginManager().registerEvents(this, plugin); + } + } + + @EventHandler + public void onBlockBreak(final BlockBreakEvent event) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("event", eventName); + jsonObject.put("player", event.getPlayer().getName()); + jsonObject.put("block", event.getBlock().getType().name()); + jsonObject.put("location", event.getBlock().getLocation().toString()); + + RegisterWebHooks.sendToAllUrls(jsonObject); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 92001b9..bd7872d 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -30,6 +30,7 @@ webhooks: server_stop: true plugin_disable: true plugin_enable: true + block_break: true # Here you can list an extra set of Files or Directories which should be saved by the Backup-System. # Following directories and files are already saved by default: ["world", "world_nether", "world_the_end", "plugins", "config", "server.properties", "banned-ips.json", "banned-players.json", "ops.json", "whitelist.json"] From 14cbae64ae4215f3f956a0e44c5f14ae87e2b71d Mon Sep 17 00:00:00 2001 From: Dennis van den Brock Date: Fri, 30 Aug 2024 22:29:01 +0200 Subject: [PATCH 2/6] Added `block_place` WebHook --- .../serverapi/webhooks/RegisterWebHooks.java | 4 +++ .../serverapi/webhooks/WebHookEnum.java | 3 +- .../serverapi/webhooks/block/BlockPlace.java | 36 +++++++++++++++++++ src/main/resources/config.yml | 1 + 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/shweit/serverapi/webhooks/block/BlockPlace.java diff --git a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java index 033f9f6..5d73158 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java +++ b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java @@ -2,6 +2,7 @@ import com.shweit.serverapi.utils.Logger; import com.shweit.serverapi.webhooks.block.BlockBreak; +import com.shweit.serverapi.webhooks.block.BlockPlace; import com.shweit.serverapi.webhooks.server.PluginDisable; import com.shweit.serverapi.webhooks.server.PluginEnable; import com.shweit.serverapi.webhooks.server.ServerStart; @@ -41,6 +42,9 @@ public void registerWebHooks(final FileConfiguration config) { new BlockBreak().register(); Logger.debug("Registered block_break WebHook"); + + new BlockPlace().register(); + Logger.debug("Registered block_place WebHook"); } public static void sendToAllUrls(final JSONObject jsonObject) { diff --git a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java index df88fbe..bb60239 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java +++ b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java @@ -8,7 +8,8 @@ public enum WebHookEnum { SERVER_STOP("server_stop", "Triggered when the server stops"), PLUGIN_DISABLE("plugin_disable", "Triggered when a plugin is disabled"), PLUGIN_ENABLE("plugin_enable", "Triggered when a plugin is enabled"), - BLOCK_BREAK("block_break", "Triggered when a block is broken"),; + BLOCK_BREAK("block_break", "Triggered when a block is broken"), + BLOCK_PLACE("block_place", "Triggered when a block is placed"),; public final String label; public final String description; diff --git a/src/main/java/com/shweit/serverapi/webhooks/block/BlockPlace.java b/src/main/java/com/shweit/serverapi/webhooks/block/BlockPlace.java new file mode 100644 index 0000000..aaaa075 --- /dev/null +++ b/src/main/java/com/shweit/serverapi/webhooks/block/BlockPlace.java @@ -0,0 +1,36 @@ +package com.shweit.serverapi.webhooks.block; + +import com.shweit.serverapi.MinecraftServerAPI; +import com.shweit.serverapi.webhooks.RegisterWebHooks; +import com.shweit.serverapi.webhooks.WebHook; +import com.shweit.serverapi.webhooks.WebHookEnum; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockPlaceEvent; +import org.json.JSONObject; + +public final class BlockPlace implements WebHook, Listener { + + private final String eventName = WebHookEnum.BLOCK_PLACE.label; + + @Override + public void register() { + if (RegisterWebHooks.doActivateWebhook(eventName)) { + MinecraftServerAPI plugin = MinecraftServerAPI.getInstance(); + plugin.getServer().getPluginManager().registerEvents(this, plugin); + } + } + + @EventHandler + public void onBlockPlace(final BlockPlaceEvent event) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("event", eventName); + jsonObject.put("player", event.getPlayer().getName()); + jsonObject.put("block", event.getBlock().getType().name()); + jsonObject.put("location", event.getBlock().getLocation().toString()); + jsonObject.put("placedAgainst", event.getBlockAgainst().getType().name()); + jsonObject.put("hand", event.getHand().name()); + + RegisterWebHooks.sendToAllUrls(jsonObject); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index bd7872d..4632a76 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -31,6 +31,7 @@ webhooks: plugin_disable: true plugin_enable: true block_break: true + block_place: true # Here you can list an extra set of Files or Directories which should be saved by the Backup-System. # Following directories and files are already saved by default: ["world", "world_nether", "world_the_end", "plugins", "config", "server.properties", "banned-ips.json", "banned-players.json", "ops.json", "whitelist.json"] From 0e94da53888eeb24dde6acb2d8a4d886d4e62224 Mon Sep 17 00:00:00 2001 From: Dennis van den Brock Date: Fri, 30 Aug 2024 22:33:09 +0200 Subject: [PATCH 3/6] Added `block_burn` WebHook --- .../serverapi/webhooks/RegisterWebHooks.java | 4 +++ .../serverapi/webhooks/WebHookEnum.java | 3 +- .../serverapi/webhooks/block/BlockBurn.java | 36 +++++++++++++++++++ src/main/resources/config.yml | 1 + 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/shweit/serverapi/webhooks/block/BlockBurn.java diff --git a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java index 5d73158..43db537 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java +++ b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java @@ -2,6 +2,7 @@ import com.shweit.serverapi.utils.Logger; import com.shweit.serverapi.webhooks.block.BlockBreak; +import com.shweit.serverapi.webhooks.block.BlockBurn; import com.shweit.serverapi.webhooks.block.BlockPlace; import com.shweit.serverapi.webhooks.server.PluginDisable; import com.shweit.serverapi.webhooks.server.PluginEnable; @@ -45,6 +46,9 @@ public void registerWebHooks(final FileConfiguration config) { new BlockPlace().register(); Logger.debug("Registered block_place WebHook"); + + new BlockBurn().register(); + Logger.debug("Registered block_burn WebHook"); } public static void sendToAllUrls(final JSONObject jsonObject) { diff --git a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java index bb60239..c3f147a 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java +++ b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java @@ -9,7 +9,8 @@ public enum WebHookEnum { PLUGIN_DISABLE("plugin_disable", "Triggered when a plugin is disabled"), PLUGIN_ENABLE("plugin_enable", "Triggered when a plugin is enabled"), BLOCK_BREAK("block_break", "Triggered when a block is broken"), - BLOCK_PLACE("block_place", "Triggered when a block is placed"),; + BLOCK_PLACE("block_place", "Triggered when a block is placed"), + BLOCK_BURN("block_burn", "Triggered when a block is burned"),; public final String label; public final String description; diff --git a/src/main/java/com/shweit/serverapi/webhooks/block/BlockBurn.java b/src/main/java/com/shweit/serverapi/webhooks/block/BlockBurn.java new file mode 100644 index 0000000..40f1ab5 --- /dev/null +++ b/src/main/java/com/shweit/serverapi/webhooks/block/BlockBurn.java @@ -0,0 +1,36 @@ +package com.shweit.serverapi.webhooks.block; + +import com.shweit.serverapi.MinecraftServerAPI; +import com.shweit.serverapi.webhooks.RegisterWebHooks; +import com.shweit.serverapi.webhooks.WebHook; +import com.shweit.serverapi.webhooks.WebHookEnum; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBurnEvent; +import org.json.JSONObject; + +import java.util.Objects; + +public final class BlockBurn implements WebHook, Listener { + + private final String eventName = WebHookEnum.BLOCK_BURN.label; + + @Override + public void register() { + if (RegisterWebHooks.doActivateWebhook(eventName)) { + MinecraftServerAPI plugin = MinecraftServerAPI.getInstance(); + plugin.getServer().getPluginManager().registerEvents(this, plugin); + } + } + + @EventHandler + public void onBlockBurn(final BlockBurnEvent event) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("event", eventName); + jsonObject.put("block", event.getBlock().getType().name()); + jsonObject.put("location", event.getBlock().getLocation().toString()); + jsonObject.put("ignitingBlock", Objects.requireNonNull(event.getIgnitingBlock()).getType().name()); + + RegisterWebHooks.sendToAllUrls(jsonObject); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 4632a76..344d6e1 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -32,6 +32,7 @@ webhooks: plugin_enable: true block_break: true block_place: true + block_burn: true # Here you can list an extra set of Files or Directories which should be saved by the Backup-System. # Following directories and files are already saved by default: ["world", "world_nether", "world_the_end", "plugins", "config", "server.properties", "banned-ips.json", "banned-players.json", "ops.json", "whitelist.json"] From cb905d9f4d2128b2e3f71e6222a2099eedcfa38a Mon Sep 17 00:00:00 2001 From: Dennis van den Brock Date: Fri, 30 Aug 2024 22:45:17 +0200 Subject: [PATCH 4/6] Added `block_redstone` WebHook --- .../serverapi/webhooks/RegisterWebHooks.java | 4 +++ .../serverapi/webhooks/WebHookEnum.java | 3 +- .../webhooks/block/BlockRedstone.java | 35 +++++++++++++++++++ src/main/resources/config.yml | 1 + 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/shweit/serverapi/webhooks/block/BlockRedstone.java diff --git a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java index 43db537..211df7e 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java +++ b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java @@ -4,6 +4,7 @@ import com.shweit.serverapi.webhooks.block.BlockBreak; import com.shweit.serverapi.webhooks.block.BlockBurn; import com.shweit.serverapi.webhooks.block.BlockPlace; +import com.shweit.serverapi.webhooks.block.BlockRedstone; import com.shweit.serverapi.webhooks.server.PluginDisable; import com.shweit.serverapi.webhooks.server.PluginEnable; import com.shweit.serverapi.webhooks.server.ServerStart; @@ -49,6 +50,9 @@ public void registerWebHooks(final FileConfiguration config) { new BlockBurn().register(); Logger.debug("Registered block_burn WebHook"); + + new BlockRedstone().register(); + Logger.debug("Registered block_redstone WebHook"); } public static void sendToAllUrls(final JSONObject jsonObject) { diff --git a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java index c3f147a..ff1a443 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java +++ b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java @@ -10,7 +10,8 @@ public enum WebHookEnum { PLUGIN_ENABLE("plugin_enable", "Triggered when a plugin is enabled"), BLOCK_BREAK("block_break", "Triggered when a block is broken"), BLOCK_PLACE("block_place", "Triggered when a block is placed"), - BLOCK_BURN("block_burn", "Triggered when a block is burned"),; + BLOCK_BURN("block_burn", "Triggered when a block is burned"), + BLOCK_REDSTONE("block_redstone", "Triggered when a block is powered by redstone or a redstone current changes"),; public final String label; public final String description; diff --git a/src/main/java/com/shweit/serverapi/webhooks/block/BlockRedstone.java b/src/main/java/com/shweit/serverapi/webhooks/block/BlockRedstone.java new file mode 100644 index 0000000..d0b99b7 --- /dev/null +++ b/src/main/java/com/shweit/serverapi/webhooks/block/BlockRedstone.java @@ -0,0 +1,35 @@ +package com.shweit.serverapi.webhooks.block; + +import com.shweit.serverapi.MinecraftServerAPI; +import com.shweit.serverapi.webhooks.RegisterWebHooks; +import com.shweit.serverapi.webhooks.WebHook; +import com.shweit.serverapi.webhooks.WebHookEnum; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockRedstoneEvent; +import org.json.JSONObject; + +public class BlockRedstone implements WebHook, Listener { + + private final String eventName = WebHookEnum.BLOCK_REDSTONE.label; + + @Override + public void register() { + if (RegisterWebHooks.doActivateWebhook(eventName)) { + MinecraftServerAPI plugin = MinecraftServerAPI.getInstance(); + plugin.getServer().getPluginManager().registerEvents(this, plugin); + } + } + + @EventHandler + public void onBlockRedstone(final BlockRedstoneEvent event) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("event", eventName); + jsonObject.put("block", event.getBlock().getType().name()); + jsonObject.put("location", event.getBlock().getLocation().toString()); + jsonObject.put("oldCurrent", event.getOldCurrent()); + jsonObject.put("newCurrent", event.getNewCurrent()); + + RegisterWebHooks.sendToAllUrls(jsonObject); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 344d6e1..a9bffb3 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -33,6 +33,7 @@ webhooks: block_break: true block_place: true block_burn: true + block_redstone: true # Here you can list an extra set of Files or Directories which should be saved by the Backup-System. # Following directories and files are already saved by default: ["world", "world_nether", "world_the_end", "plugins", "config", "server.properties", "banned-ips.json", "banned-players.json", "ops.json", "whitelist.json"] From f510f49c33e3d3265d49ee9d4d25a60aa6186b6a Mon Sep 17 00:00:00 2001 From: Dennis van den Brock Date: Fri, 30 Aug 2024 22:53:22 +0200 Subject: [PATCH 5/6] Added `note_play` WebHook --- .../serverapi/webhooks/RegisterWebHooks.java | 8 ++--- .../serverapi/webhooks/WebHookEnum.java | 3 +- .../serverapi/webhooks/block/NotePlay.java | 36 +++++++++++++++++++ src/main/resources/config.yml | 1 + 4 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/shweit/serverapi/webhooks/block/NotePlay.java diff --git a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java index 211df7e..6c7ec8d 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java +++ b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java @@ -1,10 +1,7 @@ package com.shweit.serverapi.webhooks; import com.shweit.serverapi.utils.Logger; -import com.shweit.serverapi.webhooks.block.BlockBreak; -import com.shweit.serverapi.webhooks.block.BlockBurn; -import com.shweit.serverapi.webhooks.block.BlockPlace; -import com.shweit.serverapi.webhooks.block.BlockRedstone; +import com.shweit.serverapi.webhooks.block.*; import com.shweit.serverapi.webhooks.server.PluginDisable; import com.shweit.serverapi.webhooks.server.PluginEnable; import com.shweit.serverapi.webhooks.server.ServerStart; @@ -53,6 +50,9 @@ public void registerWebHooks(final FileConfiguration config) { new BlockRedstone().register(); Logger.debug("Registered block_redstone WebHook"); + + new NotePlay().register(); + Logger.debug("Registered note_play WebHook"); } public static void sendToAllUrls(final JSONObject jsonObject) { diff --git a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java index ff1a443..06c5919 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java +++ b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java @@ -11,7 +11,8 @@ public enum WebHookEnum { BLOCK_BREAK("block_break", "Triggered when a block is broken"), BLOCK_PLACE("block_place", "Triggered when a block is placed"), BLOCK_BURN("block_burn", "Triggered when a block is burned"), - BLOCK_REDSTONE("block_redstone", "Triggered when a block is powered by redstone or a redstone current changes"),; + BLOCK_REDSTONE("block_redstone", "Triggered when a block is powered by redstone or a redstone current changes"), + NOTE_PLAY("note_play", "Triggered when a note block plays a note"),; public final String label; public final String description; diff --git a/src/main/java/com/shweit/serverapi/webhooks/block/NotePlay.java b/src/main/java/com/shweit/serverapi/webhooks/block/NotePlay.java new file mode 100644 index 0000000..09df815 --- /dev/null +++ b/src/main/java/com/shweit/serverapi/webhooks/block/NotePlay.java @@ -0,0 +1,36 @@ +package com.shweit.serverapi.webhooks.block; + +import com.shweit.serverapi.MinecraftServerAPI; +import com.shweit.serverapi.webhooks.RegisterWebHooks; +import com.shweit.serverapi.webhooks.WebHook; +import com.shweit.serverapi.webhooks.WebHookEnum; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.NotePlayEvent; +import org.json.JSONObject; + +public class NotePlay implements WebHook, Listener { + + private final String eventName = WebHookEnum.NOTE_PLAY.label; + + @Override + public void register() { + if (RegisterWebHooks.doActivateWebhook(eventName)) { + MinecraftServerAPI plugin = MinecraftServerAPI.getInstance(); + plugin.getServer().getPluginManager().registerEvents(this, plugin); + } + } + + @EventHandler + public void onNotePlay(final NotePlayEvent event) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("event", eventName); + jsonObject.put("instrument", event.getInstrument().name()); + jsonObject.put("tone", event.getNote().getTone().name()); + jsonObject.put("octave", event.getNote().getOctave()); + jsonObject.put("pitch", event.getNote().getPitch()); + jsonObject.put("location", event.getBlock().getLocation().toString()); + + RegisterWebHooks.sendToAllUrls(jsonObject); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index a9bffb3..0c9c6cf 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -34,6 +34,7 @@ webhooks: block_place: true block_burn: true block_redstone: true + note_play: true # Here you can list an extra set of Files or Directories which should be saved by the Backup-System. # Following directories and files are already saved by default: ["world", "world_nether", "world_the_end", "plugins", "config", "server.properties", "banned-ips.json", "banned-players.json", "ops.json", "whitelist.json"] From f47072c78c96566e02ab6f6facf3b982bdd10ae6 Mon Sep 17 00:00:00 2001 From: Dennis van den Brock Date: Fri, 30 Aug 2024 22:56:17 +0200 Subject: [PATCH 6/6] Added `sign_change` WebHook --- .../serverapi/webhooks/RegisterWebHooks.java | 3 ++ .../serverapi/webhooks/WebHookEnum.java | 3 +- .../webhooks/block/BlockRedstone.java | 2 +- .../serverapi/webhooks/block/NotePlay.java | 2 +- .../serverapi/webhooks/block/SignChange.java | 39 +++++++++++++++++++ src/main/resources/config.yml | 1 + 6 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/shweit/serverapi/webhooks/block/SignChange.java diff --git a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java index 6c7ec8d..bbf9e8a 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java +++ b/src/main/java/com/shweit/serverapi/webhooks/RegisterWebHooks.java @@ -53,6 +53,9 @@ public void registerWebHooks(final FileConfiguration config) { new NotePlay().register(); Logger.debug("Registered note_play WebHook"); + + new SignChange().register(); + Logger.debug("Registered sign_change WebHook"); } public static void sendToAllUrls(final JSONObject jsonObject) { diff --git a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java index 06c5919..e68d7d7 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java +++ b/src/main/java/com/shweit/serverapi/webhooks/WebHookEnum.java @@ -12,7 +12,8 @@ public enum WebHookEnum { BLOCK_PLACE("block_place", "Triggered when a block is placed"), BLOCK_BURN("block_burn", "Triggered when a block is burned"), BLOCK_REDSTONE("block_redstone", "Triggered when a block is powered by redstone or a redstone current changes"), - NOTE_PLAY("note_play", "Triggered when a note block plays a note"),; + NOTE_PLAY("note_play", "Triggered when a note block plays a note"), + SIGN_CHANGE("sign_change", "Triggered when a sign is changed"),; public final String label; public final String description; diff --git a/src/main/java/com/shweit/serverapi/webhooks/block/BlockRedstone.java b/src/main/java/com/shweit/serverapi/webhooks/block/BlockRedstone.java index d0b99b7..c5675f2 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/block/BlockRedstone.java +++ b/src/main/java/com/shweit/serverapi/webhooks/block/BlockRedstone.java @@ -9,7 +9,7 @@ import org.bukkit.event.block.BlockRedstoneEvent; import org.json.JSONObject; -public class BlockRedstone implements WebHook, Listener { +public final class BlockRedstone implements WebHook, Listener { private final String eventName = WebHookEnum.BLOCK_REDSTONE.label; diff --git a/src/main/java/com/shweit/serverapi/webhooks/block/NotePlay.java b/src/main/java/com/shweit/serverapi/webhooks/block/NotePlay.java index 09df815..b7b741f 100644 --- a/src/main/java/com/shweit/serverapi/webhooks/block/NotePlay.java +++ b/src/main/java/com/shweit/serverapi/webhooks/block/NotePlay.java @@ -9,7 +9,7 @@ import org.bukkit.event.block.NotePlayEvent; import org.json.JSONObject; -public class NotePlay implements WebHook, Listener { +public final class NotePlay implements WebHook, Listener { private final String eventName = WebHookEnum.NOTE_PLAY.label; diff --git a/src/main/java/com/shweit/serverapi/webhooks/block/SignChange.java b/src/main/java/com/shweit/serverapi/webhooks/block/SignChange.java new file mode 100644 index 0000000..c743fb9 --- /dev/null +++ b/src/main/java/com/shweit/serverapi/webhooks/block/SignChange.java @@ -0,0 +1,39 @@ +package com.shweit.serverapi.webhooks.block; + +import com.shweit.serverapi.MinecraftServerAPI; +import com.shweit.serverapi.webhooks.RegisterWebHooks; +import com.shweit.serverapi.webhooks.WebHook; +import com.shweit.serverapi.webhooks.WebHookEnum; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.SignChangeEvent; +import org.json.JSONObject; + +public final class SignChange implements WebHook, Listener { + + private final String eventName = WebHookEnum.SIGN_CHANGE.label; + + @Override + public void register() { + if (RegisterWebHooks.doActivateWebhook(eventName)) { + MinecraftServerAPI plugin = MinecraftServerAPI.getInstance(); + plugin.getServer().getPluginManager().registerEvents(this, plugin); + } + } + + @EventHandler + public void onSignChange(final SignChangeEvent event) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("event", eventName); + jsonObject.put("block", event.getBlock().getType().name()); + jsonObject.put("location", event.getBlock().getLocation().toString()); + jsonObject.put("line1", event.getLine(0)); + jsonObject.put("line2", event.getLine(1)); + jsonObject.put("line3", event.getLine(2)); + jsonObject.put("line4", event.getLine(3)); + jsonObject.put("player", event.getPlayer().getName()); + jsonObject.put("side", event.getSide().name()); + + RegisterWebHooks.sendToAllUrls(jsonObject); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 0c9c6cf..9cf6254 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -35,6 +35,7 @@ webhooks: block_burn: true block_redstone: true note_play: true + sign_change: true # Here you can list an extra set of Files or Directories which should be saved by the Backup-System. # Following directories and files are already saved by default: ["world", "world_nether", "world_the_end", "plugins", "config", "server.properties", "banned-ips.json", "banned-players.json", "ops.json", "whitelist.json"]