Skip to content

Instantly share code, notes, and snippets.

@aadnk
aadnk / ItemSerialization.java
Created November 18, 2012 01:15
Serialize inventories using NBT
package com.comphenix.example;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.math.BigInteger;
import net.minecraft.server.NBTBase;
import net.minecraft.server.NBTTagCompound;
@aadnk
aadnk / PLGlowWithEnchanting.java
Created January 20, 2013 18:34
Use ProtocolLib to make items glow without enchantments.
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
import com.comphenix.protocol.Packets;
import com.comphenix.protocol.ProtocolLibrary;
@aadnk
aadnk / ExampleListener.java
Created September 26, 2012 15:09
A way of enabling block breaking from far away
package com.comphenix.example;
import java.util.HashMap;
import java.util.Map;
import net.minecraft.server.Packet55BlockBreakAnimation;
import org.bukkit.Server;
import org.bukkit.block.Block;
import org.bukkit.craftbukkit.CraftServer;
@aadnk
aadnk / BlockChangeArray.java
Created May 17, 2013 04:42
Disguise a block (like a chest) as an arbitrary block.
package com.comphenix.example;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import org.bukkit.Location;
import org.bukkit.World;
/**
* Utility class for creating arrays of block changes.
@aadnk
aadnk / ScannerForm.vb
Created September 7, 2012 17:21
A Port Scanner in VB.NET 2012
Imports System.Net.Sockets
Public Class ScannerForm
' Used to carry information from our fibers
Public Class PortState
Public Property PortNumber As Integer
Public Property IsOpen As Boolean
Public Sub New(open As Boolean, port As Integer)
@aadnk
aadnk / ChangingUnknownCommand.java
Last active February 23, 2023 03:48
Change the "unknown command" message in 1.7.2 with ProtocolLib.
package com.comphenix.example;
import org.bukkit.ChatColor;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.json.simple.parser.JSONParser;
@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) {
@aadnk
aadnk / ExampleMod.java
Last active December 25, 2022 22:47
Intercept the TAB packet without ProtocolLib. Disallow tab completion of command names, but not parameters.
package com.comphenix.example;
import org.bukkit.plugin.java.JavaPlugin;
public class ExampleMod extends JavaPlugin {
private TabInterceptor interceptor;
@Override
public void onEnable() {
// Use ProtocolLib if its present
@aadnk
aadnk / TinyProtocol.java
Last active December 25, 2022 22:46
A tiny method enabling packet interception. Also found here: http://bit.ly/1fvVWiX
package com.comphenix.tinyprotocol;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Map;
import java.util.logging.Level;
// These are not versioned, but they require CraftBukkit
import net.minecraft.util.io.netty.channel.Channel;
@aadnk
aadnk / ExampleMod.java
Last active December 6, 2022 18:28
Hide or show players in the player list only (TAB).
package com.comphenix.example;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class ExampleMod extends JavaPlugin {
private HidePlayerList playerList;