Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d09b0ac13 | ||
|
|
8edf94d96b | ||
|
|
1ada53c51e | ||
|
|
17aacd7ee7 |
@@ -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')
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|
||||||
|
|||||||
76
src/main/java/net/ardakaz/griefalert/GriefAlertBan.java
Normal file
76
src/main/java/net/ardakaz/griefalert/GriefAlertBan.java
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
30
src/main/java/net/ardakaz/griefalert/JailListener.java
Normal file
30
src/main/java/net/ardakaz/griefalert/JailListener.java
Normal 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");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
23
src/main/java/net/ardakaz/griefalert/MuteListener.java
Normal file
23
src/main/java/net/ardakaz/griefalert/MuteListener.java
Normal 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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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]
|
||||||
@@ -11,4 +11,14 @@ commands:
|
|||||||
description: GriefAlert staff commands
|
description: GriefAlert staff 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.
|
||||||
|
|||||||
Reference in New Issue
Block a user