Skip to content

Instantly share code, notes, and snippets.

@aadnk
Created February 12, 2014 09:57
Show Gist options
  • Select an option

  • Save aadnk/8952733 to your computer and use it in GitHub Desktop.

Select an option

Save aadnk/8952733 to your computer and use it in GitHub Desktop.
How to cancel reeling in a fish.
package com.comphenix.example;
import java.util.Collections;
import java.util.Set;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerFishEvent;
import org.bukkit.event.player.PlayerFishEvent.State;
import org.bukkit.plugin.java.JavaPlugin;
import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.events.PacketAdapter;
import com.comphenix.protocol.events.PacketEvent;
import com.google.common.collect.MapMaker;
public class CancelReelingIn extends JavaPlugin implements Listener {
private Set<Player> fishers = Collections.newSetFromMap(new MapMaker().weakKeys().<Player, Boolean>makeMap());
@Override
public void onEnable() {
ProtocolLibrary.getProtocolManager().addPacketListener(
new PacketAdapter(this, PacketType.Play.Client.BLOCK_PLACE) {
@Override
public void onPacketReceiving(PacketEvent event) {
if (fishers.contains(event.getPlayer())) {
event.setCancelled(true);
System.out.println("Cancelling packet.");
}
}
});
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPlayerFishEvent(PlayerFishEvent e) {
if (e.getState() == State.FISHING) {
fishers.add(e.getPlayer());
} else {
fishers.remove(e.getPlayer());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment