4 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
6 changed files with 147 additions and 52 deletions

View File

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

View File

@@ -29,7 +29,6 @@ import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.projectiles.ProjectileSource;
import java.sql.*; import java.sql.*;
import java.util.Arrays; import java.util.Arrays;
@@ -94,7 +93,6 @@ public class GriefAlert extends JavaPlugin implements Listener {
// Init GriefAlert // Init GriefAlert
@Override @Override
public void onEnable() { public void onEnable() {
coreProtectAPI = getCoreProtect(); coreProtectAPI = getCoreProtect();
if (coreProtectAPI == null) { if (coreProtectAPI == null) {
getLogger().severe("CoreProtect not found! Disabling plugin."); getLogger().severe("CoreProtect not found! Disabling plugin.");
@@ -103,6 +101,7 @@ public class GriefAlert extends JavaPlugin implements Listener {
} }
getServer().getPluginManager().registerEvents(this, this); getServer().getPluginManager().registerEvents(this, this);
getServer().getPluginManager().registerEvents(new GriefAlertBan(), this);
// Config // Config
saveDefaultConfig(); saveDefaultConfig();
@@ -812,54 +811,6 @@ public class GriefAlert extends JavaPlugin implements Listener {
}, 1L); }, 1L);
} }
//Ender Crystal shenanigans
@EventHandler
public void onEndCrystalDeath(EntityDamageByEntityEvent event){
//if its not an endercrystal it should not do logic for enderCrystal
if(!(event.getEntity() instanceof EnderCrystal)) return;
Location loc = event.getEntity().getLocation();
int x = loc.getBlockX();
int y = loc.getBlockY();
int z = loc.getBlockZ();
String world = loc.getWorld().getName();
//Placeholder
Player damager = null;
//if its a Player then its a player (damage is like sword or fist or whatever)
if(event.getDamager() instanceof Player player){
damager = player;
//if its not hit by a player, its from a projectile which we need ownership off
}else if(event.getDamager() instanceof Projectile projectile){
ProjectileSource source = projectile.getShooter();
if(source instanceof Player player){
damager = player;
}
}
if(damager == null){
return; //idk what it is, (i do) but it wasnt a player
}
if (isLocationIgnored(x, y, z, world)) {
return;
}
Block block = loc.getBlock();
String target = inspectBlock(block, damager);
if (target == null) return;
//cuz Blåhaj is cute so if you damage your own stuff u gucci
if (target.equals(damager.getName())) return;
String message = ChatColor.GRAY + damager.getName() + " destroyed an ender crystal owned by " + target + " at " + x + " " + y + " " + z;
alert(message, damager.getName(), "[Map Link](" + MAP_LINK + "/?worldname=" + world + "&zoom=7&x=" + x + "&y=" + y + "&z=" + z + ")", target, x, y, z, world);
}
private CoreProtectAPI getCoreProtect() { private CoreProtectAPI getCoreProtect() {
Plugin plugin = getServer().getPluginManager().getPlugin("CoreProtect"); Plugin plugin = getServer().getPluginManager().getPlugin("CoreProtect");

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