下面列出了org.bukkit.metadata.MetadataValue#getOwningPlugin ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public void onPlayerTeleport(PlayerTeleportEvent event, SpleefPlayer player) {
Player bukkitPlayer = player.getBukkitPlayer();
if (bukkitPlayer.hasMetadata(SpleefPlayer.ALLOW_NEXT_TELEPORT_KEY)) {
List<MetadataValue> values = bukkitPlayer.getMetadata(SpleefPlayer.ALLOW_NEXT_TELEPORT_KEY);
for (MetadataValue value : values) {
if (value.getOwningPlugin() != heavySpleef.getPlugin()) {
continue;
}
if (value.asBoolean()) {
return;
}
}
}
event.setCancelled(true);
}
private void cancelBowSpleefEntityEvent(Entity entity, Cancellable cancellable) {
boolean isBowspleefEntity = false;
List<MetadataValue> metadatas = entity.getMetadata(BOWSPLEEF_METADATA_KEY);
for (MetadataValue value : metadatas) {
if (value.getOwningPlugin() != getHeavySpleef().getPlugin()) {
continue;
}
isBowspleefEntity = value.asBoolean();
}
if (isBowspleefEntity) {
entity.remove();
cancellable.setCancelled(true);
}
}
private boolean noCooldown(Entity e) {
for(MetadataValue meta : e.getMetadata("lastDrop")) {
if(meta.getOwningPlugin() == plugin) {
return System.currentTimeMillis() - meta.asFloat() > 100;
}
}
return true;
}
void returnArmorStand(ArmorStand as) {
if(as.hasMetadata("startLoc")) {
for (MetadataValue value : as.getMetadata("startLoc")) {
if (value.getOwningPlugin() == this) {
as.teleport((Location) value.value());
as.removeMetadata("startLoc", this);
return;
}
}
}
as.remove();
}
@EventHandler
public void onEntityExplode(EntityExplodeEvent event) {
Entity entity = event.getEntity();
Game game = null;
List<MetadataValue> metadatas = entity.getMetadata(TNT_METADATA_KEY);
for (MetadataValue value : metadatas) {
if (value.getOwningPlugin() != getHeavySpleef().getPlugin()) {
continue;
}
game = (Game) value.value();
}
if (game != null) {
List<Block> blocks = event.blockList();
for (Block block : blocks) {
if (!game.canSpleef(block)) {
continue;
}
block.setType(Material.AIR);
}
blocks.clear();
}
}