@EventHandler(priority = EventPriority.HIGH)
public void onInteractEntity(PlayerInteractAtEntityEvent event) {
if (event.getRightClicked() == null) {
return;
}
Entity entity = event.getRightClicked();
Player player = event.getPlayer();
if (!player.hasMetadata("bw-addteamjoin")) {
if (!(entity instanceof LivingEntity)) {
return;
}
LivingEntity livEntity = (LivingEntity) entity;
Game game = BedwarsRel.getInstance().getGameManager().getGameOfPlayer(player);
if (game == null) {
return;
}
if (game.getState() != GameState.WAITING) {
return;
}
Team team = game.getTeam(ChatColor.stripColor(livEntity.getCustomName()));
if (team == null) {
return;
}
game.playerJoinTeam(player, team);
event.setCancelled(true);
return;
}
List<MetadataValue> values = player.getMetadata("bw-addteamjoin");
if (values == null || values.size() == 0) {
return;
}
event.setCancelled(true);
TeamJoinMetaDataValue value = (TeamJoinMetaDataValue) values.get(0);
if (!((boolean) value.value())) {
return;
}
if (!(entity instanceof LivingEntity)) {
player.sendMessage(
ChatWriter.pluginMessage(ChatColor.RED + BedwarsRel
._l(player, "errors.entitynotcompatible")));
return;
}
LivingEntity living = (LivingEntity) entity;
living.setRemoveWhenFarAway(false);
living.setCanPickupItems(false);
living.setCustomName(value.getTeam().getChatColor() + value.getTeam().getDisplayName());
living.setCustomNameVisible(
BedwarsRel.getInstance().getBooleanConfig("jointeam-entity.show-name", true));
if (living.getType().equals(EntityType.valueOf("ARMOR_STAND"))) {
Utils.equipArmorStand(living, value.getTeam());
}
player.removeMetadata("bw-addteamjoin", BedwarsRel.getInstance());
player.sendMessage(ChatWriter
.pluginMessage(
ChatColor.GREEN + BedwarsRel._l(player, "success.teamjoinadded", ImmutableMap.of("team",
value.getTeam().getChatColor() + value.getTeam().getDisplayName()
+ ChatColor.GREEN))));
}
EntityListener.java 文件源码
java
阅读 22
收藏 0
点赞 0
评论 0
项目:BedwarsRel
作者:
评论列表
文章目录