- Баллы
- 88
- Имя в Minecraft
- MOR_IV
Мне надо отловить выделение территории игроком, будь то топор, hpos, //move, //expand и т.п.
слушать все команды как то громоздко. Нашел http://wiki.sk89q.com/wiki/WorldEdit/API/Hooking_EditSession
Но ни фига не пойму, можно ли это использовать.
Код ниже в консоли выполнятся только при команде //wand
и то в консоли вижу: 1, 2 повторяющиеся 3 раза.
Походу я идиот или лыжи не едут.
WE 6+
слушать все команды как то громоздко. Нашел http://wiki.sk89q.com/wiki/WorldEdit/API/Hooking_EditSession
Но ни фига не пойму, можно ли это использовать.
Код ниже в консоли выполнятся только при команде //wand
и то в консоли вижу: 1, 2 повторяющиеся 3 раза.
Походу я идиот или лыжи не едут.
WE 6+
Код:
package ru.mor.iv.lockregion.listeners;
import org.bukkit.Bukkit;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.blocks.BaseBlock;
import com.sk89q.worldedit.event.extent.EditSessionEvent;
import com.sk89q.worldedit.extension.platform.Actor;
import com.sk89q.worldedit.extent.Extent;
import com.sk89q.worldedit.extent.logging.AbstractLoggingExtent;
import com.sk89q.worldedit.util.eventbus.Subscribe;
public class SelectionListener {
@Subscribe
public void wrapForLogging(EditSessionEvent event) {
Bukkit.getLogger().info("1");
Actor actor = event.getActor();
if (actor != null && actor.isPlayer()) {
event.setExtent(new MyLogger(actor, event.getExtent()));
}
}
public class MyLogger extends AbstractLoggingExtent {
private final Actor actor;
public MyLogger(Actor actor, Extent extent) {
super(extent);
this.actor = actor;
Bukkit.getLogger().info("2");
}
@Override
protected void onBlockChange(Vector position, BaseBlock newBlock) {
Bukkit.getLogger().info("3");
}
}
}