Upload files to "src/net/ardakaz/griefalert"
added copper block waxing and unwaxing and dusting off logic, (might need a little extra rework because changing its state is considered "replacing" which sorta breaks the logic) added log stripping detection (same issue as copper blocks)
This commit is contained in:
@@ -4,6 +4,7 @@ import net.coreprotect.CoreProtect;
|
||||
import net.coreprotect.CoreProtectAPI;
|
||||
import net.coreprotect.CoreProtectAPI.ParseResult;
|
||||
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
@@ -12,27 +13,24 @@ import org.bukkit.block.Block;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.AnimalTamer;
|
||||
import org.bukkit.entity.Cat;
|
||||
import org.bukkit.entity.Tameable;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.event.*;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.event.inventory.InventoryAction;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryType;
|
||||
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.entity.ArmorStand;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.PreparedStatement;
|
||||
@@ -44,11 +42,10 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import org.bukkit.inventory.EntityEquipment;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
|
||||
|
||||
|
||||
public class GriefAlert extends JavaPlugin implements Listener, TabCompleter {
|
||||
public class GriefAlert extends JavaPlugin implements Listener {
|
||||
|
||||
private static CoreProtectAPI coreProtectAPI;
|
||||
private Integer identicalAlerts = 1;
|
||||
@@ -699,6 +696,129 @@ public class GriefAlert extends JavaPlugin implements Listener, TabCompleter {
|
||||
|
||||
|
||||
}
|
||||
/*code i hope for copper waxing/unwaxing theres no proper onwax() or onUnWax()
|
||||
so im kinda gonna try to just check a situation like, if ur holding an axe, left clicking a copper block
|
||||
and its waxed, ill assume ur unwaxing, and therefor sending an alert
|
||||
but some of this code was written at 1am so idk how and why im why and howing */
|
||||
|
||||
@EventHandler
|
||||
public void onBlockClick(PlayerInteractEvent event) {
|
||||
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
Block block = event.getClickedBlock();
|
||||
ItemStack item = event.getItem();
|
||||
|
||||
if (block == null || item == null) return;
|
||||
|
||||
Material before = block.getType();
|
||||
|
||||
|
||||
int x = block.getX();
|
||||
int y = block.getY();
|
||||
int z = block.getZ();
|
||||
String world = block.getWorld().getName();
|
||||
|
||||
|
||||
if (isLocationIgnored(x, y, z, world)){
|
||||
return;
|
||||
}
|
||||
|
||||
boolean isCopper = before.name().contains("COPPER");
|
||||
//if aint copper it can no copper and means no copper affected
|
||||
if (!isCopper) return;
|
||||
//for waxing logic might not even be needed
|
||||
//boolean isHoneycomb = item.getType() == Material.HONEYCOMB;
|
||||
|
||||
//for unwax logic and also might not be needed
|
||||
//boolean isAxe = item.getType().toString().endsWith("_AXE");
|
||||
|
||||
String target = inspectBlock(block, player);
|
||||
if(target == player.getName()) return;
|
||||
if(target == null) return;
|
||||
|
||||
Bukkit.getScheduler().runTaskLater(this, () -> {
|
||||
String action;
|
||||
Material after = block.getType();
|
||||
|
||||
if (before == after) return;
|
||||
|
||||
boolean wasWaxed = before.name().startsWith("WAXED_");
|
||||
boolean isWaxed = after.name().startsWith("WAXED_");
|
||||
|
||||
if(wasWaxed && !isWaxed){
|
||||
action = "Unwaxed";
|
||||
} else if(!wasWaxed && isWaxed) {
|
||||
action = "Waxed";
|
||||
} else if (item !=null && item.getType().name().endsWith("_AXE")) {
|
||||
action = "undusted";
|
||||
|
||||
}else{
|
||||
action = "error 404 check with kleedje30";
|
||||
}
|
||||
|
||||
String message = ChatColor.GRAY + player.getName() + action + " Copper " + " at " + x + " " + y + " " + z + getHumanWorldName(world);
|
||||
alert(message, player.getName(), "[Map Link](" + MAP_LINK + "/?worldname=" + world + "&zoom=7&x=" + x + "&y=" + y + "&z=" + z + ")",target, x, y, z, world);
|
||||
|
||||
|
||||
|
||||
|
||||
}, 1L);
|
||||
|
||||
|
||||
}
|
||||
|
||||
//stripping logs
|
||||
@EventHandler
|
||||
public void onLogStrip(PlayerInteractEvent event){
|
||||
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
Block block = event.getClickedBlock();
|
||||
ItemStack item = event.getItem();
|
||||
|
||||
if (block == null || item == null) return;
|
||||
|
||||
Material before = block.getType();
|
||||
|
||||
int x = block.getX();
|
||||
int y = block.getY();
|
||||
int z = block.getZ();
|
||||
String world = block.getWorld().getName();
|
||||
|
||||
boolean isWood = before.name().contains("LOG");
|
||||
|
||||
if(!isWood) return;
|
||||
|
||||
|
||||
if (isLocationIgnored(x, y, z, world)){
|
||||
return;
|
||||
}
|
||||
|
||||
String target = inspectBlock(block, player);
|
||||
if(target == null) return;
|
||||
|
||||
if(target == player.getName()) return;
|
||||
|
||||
Bukkit.getScheduler().runTaskLater(this, () -> {
|
||||
String action;
|
||||
Material after = block.getType();
|
||||
if(before == after) return;
|
||||
|
||||
if(!before.name().contains("STRIPPED") && after.name().contains("STRIPPED")){
|
||||
action = "Stripped";
|
||||
} else{return;}
|
||||
|
||||
|
||||
String message = ChatColor.GRAY + player.getName() + action + " a(n) " + before + " at " + x + " " + y + " " + z + getHumanWorldName(world);
|
||||
alert(message, player.getName(), "[Map Link](" + MAP_LINK + "/?worldname=" + world + "&zoom=7&x=" + x + "&y=" + y + "&z=" + z + ")",target, x, y, z, world);
|
||||
|
||||
|
||||
|
||||
}, 1L);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static String getHumanWorldName(String worldName) {
|
||||
String world = "";
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
package net.ardakaz.griefalert;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user