Skip to content

Instantly share code, notes, and snippets.

@aadnk
aadnk / BukkitSerialization.java
Created December 26, 2013 20:17
Serialize and deserialize inventories to a string.
package com.comphenix.example;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.bukkit.Bukkit;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.io.BukkitObjectInputStream;
@aadnk
aadnk / ItemSerialization.java
Created December 26, 2013 20:33
Only use this version if you've used ItemSerialization before, and want backwards compatibility. This Bukkit-only version is far superior: https://gist.github.com/aadnk/8138186
package com.comphenix.example;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.lang.reflect.Method;
@aadnk
aadnk / SignEditorPlugin.java
Created December 28, 2013 14:15
Allow players to edit signs through a command.
package com.comphenix.example;
import java.lang.reflect.InvocationTargetException;
import java.util.concurrent.ConcurrentMap;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.Sign;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@aadnk
aadnk / SendRawTellPacket.java
Created January 1, 2014 03:36
Send a raw tell command to a player through ProtocolLib.
package com.comphenix.example;
import java.lang.reflect.InvocationTargetException;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
@aadnk
aadnk / FlightController.java
Last active January 2, 2016 00:29
A simple API for multiple plugins to negotiate if flight is to be allowed. See http://forums.bukkit.org/threads/proposal-central-flight-mediation-plugin.214379/
package com.comphenix.example;
import java.util.Map;
import java.util.logging.Level;
import javax.annotation.Nullable;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.metadata.FixedMetadataValue;
@aadnk
aadnk / FakeWither.java
Created January 10, 2014 00:27
FakeWither for 1.7.2. Remember to add the appropriate classes from PacketWrapper.
package com.comphenix.example;
import com.comphenix.protocol.events.PacketContainer;
import java.lang.reflect.InvocationTargetException;
import java.util.logging.Level;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
@aadnk
aadnk / HideChestOpeningMod.java
Created January 18, 2014 19:56
Updated version of HideChestOpeningMod
package com.comphenix.hidechest;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.plugin.java.JavaPlugin;
import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
import com.comphenix.protocol.events.PacketAdapter;
@aadnk
aadnk / SleepingAnimation.java
Created January 25, 2014 03:24
Trigger the sleeping animation with ProtocolLib.
package com.comphenix.example;
import java.lang.reflect.InvocationTargetException;
import java.util.Collections;
import java.util.Set;
import java.util.WeakHashMap;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@aadnk
aadnk / LookupExample.java
Last active December 4, 2018 17:03
An alternative to TagAPI.
package com.comphenix.example;
import java.util.Arrays;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
@aadnk
aadnk / DisablePotionParticles.java
Created February 11, 2014 23:08
Disable potion particles. Works in Minecraft 1.7.2 - 1.5.2.
package com.comphenix.example;
import java.util.List;
import org.bukkit.entity.Entity;
import org.bukkit.plugin.java.JavaPlugin;
import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
import com.comphenix.protocol.events.PacketAdapter;