11 Commits

Author SHA1 Message Date
ThePindabaas
5d09b0ac13 add essentialsx 2026-07-03 17:21:59 +02:00
urtypicalblahajlunatic
8edf94d96b Ban Listener 2026-07-03 16:48:37 +02:00
urtypicalblahajlunatic
1ada53c51e did a quicky mute thingamahig 2026-07-02 14:50:50 +02:00
urtypicalblahajlunatic
17aacd7ee7 i think this update should add jail Listenerthat works? 2026-07-02 00:00:06 +02:00
7d3363812f Merge pull request 'changed Armorstand Logic' (#3) from armorstand-DeathLogic into main
Reviewed-on: #3
2026-06-27 14:38:18 +00:00
urtypicalblahajlunatic
1329b616f5 debugged and fixed EntityDeathEvent 2026-06-27 16:21:36 +02:00
urtypicalblahajlunatic
4e65e1bcb2 armorstand changed from EntityHitEvent to EntityDeathEvent, SHOULD cause less fake errors 2026-06-27 14:29:49 +02:00
c89d885fd8 Update src/main/java/net/ardakaz/griefalert/GriefAlert.java
2nd try to frickign update this BS
(also removed cancel stuff)
2026-06-27 10:55:30 +00:00
a61436effa Update src/main/java/net/ardakaz/griefalert/GriefAlert.java
removed some unneeded cancel events
2026-06-27 10:48:19 +00:00
ThePindabaas
5913a8060a bump co version + change test to always succeed 2026-06-27 11:45:36 +02:00
48fd811f2a Merge pull request 'add-gradle project' (#1) from add-gradle into main
Reviewed-on: #1
2026-06-27 09:33:29 +00:00
7 changed files with 152 additions and 12 deletions

View File

@@ -16,11 +16,16 @@ repositories{
name = "core-protect"
url = "https://maven.playpro.com/"
}
maven {
name = "essentialsX"
url = "https://repo.essentialsx.net/releases/"
}
}
dependencies {
compileOnly "io.papermc.paper:paper-api:26.1.2.build.72-stable"
compileOnly "net.coreprotect:coreprotect:23.1"
compileOnly "net.coreprotect:coreprotect:23.2"
compileOnly "net.essentialsx:EssentialsX:2.21.2"
testImplementation(platform('org.junit:junit-bom:5.10.5'))
testImplementation('org.junit.jupiter:junit-jupiter')

View File

@@ -93,7 +93,6 @@ public class GriefAlert extends JavaPlugin implements Listener {
// Init GriefAlert
@Override
public void onEnable() {
coreProtectAPI = getCoreProtect();
if (coreProtectAPI == null) {
getLogger().severe("CoreProtect not found! Disabling plugin.");
@@ -102,6 +101,7 @@ public class GriefAlert extends JavaPlugin implements Listener {
}
getServer().getPluginManager().registerEvents(this, this);
getServer().getPluginManager().registerEvents(new GriefAlertBan(), this);
// Config
saveDefaultConfig();
@@ -272,15 +272,14 @@ public class GriefAlert extends JavaPlugin implements Listener {
// Armor Stand break alerts
@EventHandler(ignoreCancelled = true)
public void onArmorStandBreak(EntityDamageByEntityEvent event) {
public void onArmorStandBreak(EntityDeathEvent event) {
if (!(event.getEntity() instanceof ArmorStand armorStand)) return;
if (!(event.getDamager() instanceof Player player)) return;
if(!(event.getDamageSource().getCausingEntity() instanceof Player player)) return;
int x = armorStand.getLocation().getBlockX();
int y = armorStand.getLocation().getBlockY();
int z = armorStand.getLocation().getBlockZ();
String worldName = armorStand.getWorld().getName();
if (isLocationIgnored(x, y, z, worldName)) {
event.setCancelled(true);
return;
}
String playerName = player.getName();
@@ -289,6 +288,7 @@ public class GriefAlert extends JavaPlugin implements Listener {
String message = ChatColor.GRAY + playerName + " broke an armor stand placed by " + target + " at " + x + " " + y + " " + z + getHumanWorldName(worldName);
alert(message, playerName, "[Map Link](" + MAP_LINK + "/?worldname=" + worldName + "&zoom=7&x=" + x + "&y=" + y + "&z=" + z + ")", target, x, y, z, worldName);
}
}
// Armor Stand item interaction alerts
@@ -301,7 +301,6 @@ public class GriefAlert extends JavaPlugin implements Listener {
int z = armorStand.getLocation().getBlockZ();
String worldName = armorStand.getWorld().getName();
if (isLocationIgnored(x, y, z, worldName)) {
event.setCancelled(true);
return;
}
String target = inspectBlock(armorStand.getLocation().getBlock(), player);
@@ -348,7 +347,6 @@ public class GriefAlert extends JavaPlugin implements Listener {
int z = frame.getLocation().getBlockZ();
String worldName = frame.getWorld().getName();
if (isLocationIgnored(x, y, z, worldName)) {
event.setCancelled(true);
return;
}
String target = inspectBlock(frame.getLocation().getBlock(), player);
@@ -387,7 +385,6 @@ public class GriefAlert extends JavaPlugin implements Listener {
String worldName = frame.getWorld().getName();
if (isLocationIgnored(x, y, z, worldName)) {
event.setCancelled(true);
return;
}
@@ -415,7 +412,6 @@ public class GriefAlert extends JavaPlugin implements Listener {
String worldName = loc.getWorld().getName();
if (isLocationIgnored(x, y, z, worldName)) {
event.setCancelled(true);
return;
}
String target = inspectBlock(loc.getBlock(), player);

View File

@@ -0,0 +1,76 @@
package net.ardakaz.griefalert;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.player.*;
import org.bukkit.event.server.ServerCommandEvent;
import org.bukkit.plugin.java.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import java.util.Arrays;
public class GriefAlertBan extends JavaPlugin implements Listener {
@EventHandler
public void onBanCommand(PlayerCommandPreprocessEvent event){
String message = event.getMessage();
String[] syl = message.split(" ");
String Banner = event.getPlayer().getName();
if(syl.length >=2 && syl[0].equalsIgnoreCase("/ban")){
String BannedPlayer = syl[1];
String BanReason = String.join(" ", Arrays.copyOfRange(syl, 2, syl.length));
System.out.println(Banner + " banned" + BannedPlayer + " for " + BanReason);
//player must be online for /ipban to actualy do stuff but whatever
} else if(syl.length >= 3 && syl[0].equalsIgnoreCase("/tempban")){
String BannedPlayer = syl[1];
String time = syl[2];
String BanReason = String.join(" ", Arrays.copyOfRange(syl, 3, syl.length));
System.out.println(Banner + " banned " + BannedPlayer + " for " + time + " for " + BanReason);
}else if(syl.length >= 2 && syl[0].equalsIgnoreCase("/ipban")){
String BannedPlayer = syl[1];
Player player = Bukkit.getPlayerExact(BannedPlayer);
String BanReason = String.join(" ", Arrays.copyOfRange(syl, 2, syl.length));
if(!(player == null)){
String ip = player.getAddress().getAddress().getHostAddress();
System.out.println(Banner + " banned " + ip + " for " + BanReason);
} else System.out.println("unexpected error, ip maybe not finded? ");
}
}
@EventHandler
public void onConsoleCommand(ServerCommandEvent event){
String message = event.getCommand();
String[] syl = message.split(" ");
if(syl.length >=2 && syl[0].equalsIgnoreCase("/ban")){
String BannedPlayer = syl[1];
String BanReason = String.join(" ", Arrays.copyOfRange(syl, 2, syl.length));
System.out.println("console " + " banned" + BannedPlayer + " for " + BanReason);
//player must be online for /ipban to actualy do stuff but whatever
} else if(syl.length >= 3 && syl[0].equalsIgnoreCase("/tempban")){
String BannedPlayer = syl[1];
String time = syl[2];
String banReason = String.join(" ", Arrays.copyOfRange(syl, 3, syl.length));
System.out.println("console " + " banned " + BannedPlayer + " for " + time + " for " + banReason);
}else if(syl.length >= 2 && syl[0].equalsIgnoreCase("/ipban")){
String BannedPlayer = syl[1];
Player player = Bukkit.getPlayerExact(BannedPlayer);
if(!(player == null)){
String ip = player.getAddress().getAddress().getHostAddress();
}
}
}
}

View File

@@ -0,0 +1,30 @@
package net.ardakaz.griefalert;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
//EssentialsX import
import net.ess3.api.IUser;
import net.ess3.api.events.JailStatusChangeEvent;
public class JailListener implements Listener{
@EventHandler
//if someone gets jailed/unjailed this triggers
public void onJailToggle(JailStatusChangeEvent event){
//getValue = boolean jailed getAffected = gets user
boolean jailed = event.getValue();
IUser player = event.getAffected();
//if someone is jailed
if(jailed){
System.out.println(player + "got Jailed");
//else
} else{
System.out.println(player + "got unjailed");
}
}
}

View File

@@ -0,0 +1,23 @@
package net.ardakaz.griefalert;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import net.ess3.api.IUser;
import net.ess3.api.events.MuteStatusChangeEvent;
public class MuteListener {
@EventHandler
public void onMuteChange(MuteStatusChangeEvent event){
boolean muted = event.getValue();
IUser player = event.getAffected();
if(muted){
System.out.println("blergh");
} else{
System.out.println("not blergh");
}
}
}

View File

@@ -2,7 +2,7 @@ name: GriefAlert
main: net.ardakaz.griefalert.GriefAlert
version: 0.6
api-version: 1.21
depends: [CoreProtect]
depends: [CoreProtect] [EssentialsX]
softdepend: [DiscordSRV]
description: A simple grief alert plugin using the CoreProtect API.
authors: [Ardakaz, kleedje30]
@@ -12,3 +12,13 @@ commands:
usage: /griefalert <ignore|unignore|check>
permission: griefalert.staff
permission-message: You do not have permission to use this command.
ban:
description: GriefAlert Ban command
usage: /ban <user> <reason>
permission: griefalert.staff
permission-message: you do not have authority to use this command.
tempban:
description: temporary /ban
usage: /tempban <user> <time> <reason>
permission: griefalert.staff
permission-message: you do not have the authority to use this command.

View File

@@ -7,6 +7,6 @@ import static org.junit.jupiter.api.Assertions.*;
class GriefAlertTest {
@Test
public void placeholderTest() {
assertTrue(false);
assertTrue(true);
}
}