Skip to content

Instantly share code, notes, and snippets.

@aadnk
aadnk / ConsumeListener.java
Created April 15, 2013 18:29
Player consume/food listener.
package com.comphenix.example;
import java.util.Map;
import java.util.WeakHashMap;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
@aadnk
aadnk / EventExceptionHandler.java
Created April 21, 2013 18:03
Add an exception handler to every event handler in your plugin.
package com.comphenix.example;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.Validate;
import org.bukkit.event.Event;
@aadnk
aadnk / DisplayNameMod.java
Created April 22, 2013 01:10
Let the displayed name on a mob be different depending on the player.
package com.comphenix.example;
import java.util.UUID;
import org.bukkit.ChatColor;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.CreatureSpawnEvent;
@aadnk
aadnk / TileEntityProcessor.java
Last active September 16, 2024 07:56
Thread-safe tile entity processor that splits up the work in smaller portions.
package com.comphenix.example;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Queue;
import java.util.concurrent.TimeUnit;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.block.BlockState;
@aadnk
aadnk / FlamingAnvil.java
Created April 30, 2013 01:53
Change the appearance of a falling anvil to a flaming block.
package com.comphenix.example;
import java.util.HashSet;
import java.util.Set;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@aadnk
aadnk / Main.java
Created April 30, 2013 02:45
Difference between AntiCommandTab (BukkitDev) and AntiTab (Spigot)
package De24.one;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
import com.comphenix.protocol.events.ConnectionSide;
import com.comphenix.protocol.events.ListenerPriority;
import com.comphenix.protocol.events.PacketAdapter;
import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.events.PacketEvent;
import com.comphenix.protocol.reflect.FieldAccessException;
@aadnk
aadnk / Cooldowns.java
Last active September 11, 2024 07:04
A very simple cooldown library.
package com.comphenix.example;
import org.bukkit.entity.Player;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
public class Cooldowns {
private static Table<String, String, Long> cooldowns = HashBasedTable.create();
@aadnk
aadnk / REP.java
Created May 3, 2013 03:39
A read-eval print loop in Java using Rhino.
package com.comphenix.testing;
import java.io.PrintStream;
import java.util.Scanner;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class REP {
@aadnk
aadnk / REPLBukkit.java
Last active December 17, 2015 00:38
Read-eval-print loop in CraftBukkit.
package com.comphenix.example;
import java.util.concurrent.TimeUnit;
import javax.script.*;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.*;
import org.bukkit.conversations.*;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
@aadnk
aadnk / ShootingMod.java
Last active December 26, 2022 18:53
A simple demonstration of how to implement guns in Bukkit.
public class ExampleMod extends JavaPlugin implements Listener {
final int ATTACK_REACH = 100; // meters
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onInteract(PlayerInteractEvent evt) {