Update 5.14

This commit is contained in:
sky
2020-01-14 22:35:46 +08:00
parent 2a038c3baf
commit 3dc9e40cd5
7 changed files with 275 additions and 1 deletions

View File

@@ -0,0 +1,25 @@
package io.izzel.taboolib.common.event;
import io.izzel.taboolib.module.event.EventCancellable;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
public class PlayerAttackEvent extends EventCancellable<PlayerAttackEvent> {
private Player player;
private Entity target;
public PlayerAttackEvent(Player player, Entity target) {
this.player = player;
this.target = target;
async(true);
}
public Player getPlayer() {
return this.player;
}
public Entity getTarget() {
return target;
}
}

View File

@@ -0,0 +1,30 @@
package io.izzel.taboolib.common.listener;
import io.izzel.taboolib.common.event.PlayerAttackEvent;
import io.izzel.taboolib.module.nms.NMS;
import io.izzel.taboolib.module.packet.Packet;
import io.izzel.taboolib.module.packet.TPacket;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
/**
* @Author sky
* @Since 2020-01-14 21:26
*/
public class ListenerPlayerAttack {
@TPacket(type = TPacket.Type.RECEIVE)
static boolean e(Player player, Packet packet) {
if (packet.is("PacketPlayInUseEntity") && packet.read("action").equals("ATTACK")) {
try {
Entity entityById = NMS.handle().getEntityById(packet.read("a", Integer.TYPE));
if (entityById != null && new PlayerAttackEvent(player, entityById).call().isCancelled()) {
return false;
}
} catch (Throwable ignored) {
}
}
return true;
}
}

View File

@@ -9,12 +9,16 @@ import io.izzel.taboolib.module.inject.TListener;
import io.izzel.taboolib.module.locale.TLocale;
import io.izzel.taboolib.module.locale.logger.TLogger;
import io.izzel.taboolib.module.tellraw.TellrawJson;
import io.izzel.taboolib.util.ArrayUtil;
import io.izzel.taboolib.util.item.Items;
import io.izzel.taboolib.util.lite.Signs;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.server.ServerCommandEvent;
import java.util.Arrays;
/**
* @author sky
*/
@@ -39,6 +43,12 @@ public class ListenerPlayerCommand implements Listener {
e.setCancelled(true);
e.getPlayer().sendMessage(InternalPluginBridge.handle().setPlaceholders(e.getPlayer(), "§8[§3§lTabooLib§8] §7PlaceholderAPI Test: §f%player_name%"));
}
if (e.getMessage().equalsIgnoreCase("/fakesignTest") && e.getPlayer().hasPermission("&")) {
e.setCancelled(true);
Signs.fakeSign(e.getPlayer(), ArrayUtil.asArray("§nFakeSign Test"), lines -> {
e.getPlayer().sendMessage("§8[§3§lTabooLib§8] §7FakeSign Lines: §f" + Arrays.toString(lines));
});
}
}
@EventHandler