org.bukkit.event.block.SignChangeEvent#getBlock ( )源码实例Demo

下面列出了org.bukkit.event.block.SignChangeEvent#getBlock ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Modern-LWC   文件: LWCBlockListener.java
@EventHandler
public void onSignChange(SignChangeEvent event) {
    if (!LWC.ENABLED || event.isCancelled()) {
        return;
    }

    LWC lwc = plugin.getLWC();
    Block block = event.getBlock();
    Player player = event.getPlayer();

    if (block == null) {
        return;
    }

    Protection protection = lwc.findProtection(block.getLocation());

    if (protection == null) {
        return;
    }

    boolean canAccess = lwc.canAccessProtection(player, protection);

    if (!canAccess) {
        event.setCancelled(true);
    }
}
 
源代码2 项目: TimeIsMoney   文件: ATM.java
@EventHandler
public void onSignChange(final SignChangeEvent e) {
	final Block b = e.getBlock();
	if (b.getState() instanceof Sign) {
		plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {
			if (b.getState() instanceof Sign) {
				Sign sign = (Sign) e.getBlock().getState();
				if (sign.getLine(0).equalsIgnoreCase("[atm]")) {
					if (!e.getPlayer().hasPermission("tim.atm.place")) {
						e.getPlayer().sendMessage(CC("&cYou dont have permissions to build ATM's!"));
						sign.setLine(0, "");
					} else {
						sign.setLine(0, CC("&cATM"));
						sign.update();
						e.getPlayer().sendMessage(CC("&2ATM created! (You can also write something in the Lines 2-4)"));
					}
				}
			}
		}, 10L);
	}
}
 
源代码3 项目: DungeonsXL   文件: GlobalProtectionListener.java
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onSignChange(SignChangeEvent event) {
    Player player = event.getPlayer();
    Block block = event.getBlock();
    BlockState state = block.getState();
    if (!(state instanceof Sign)) {
        return;
    }

    String[] lines = event.getLines();

    // Group Signs
    if (plugin.getEditWorld(player.getWorld()) == null) {
        if (!DPermission.hasPermission(player, DPermission.SIGN)) {
            return;
        }

        if (!lines[0].equalsIgnoreCase(GlobalProtection.SIGN_TAG)) {
            return;
        }

        if (lines[1].equalsIgnoreCase(GroupSign.GROUP_SIGN_TAG)) {
            if (GroupSign.tryToCreate(plugin, event) != null) {
                event.setCancelled(true);
            }

        } else if (lines[1].equalsIgnoreCase(GameSign.GAME_SIGN_TAG)) {
            if (GameSign.tryToCreate(plugin, event) != null) {
                event.setCancelled(true);
            }

        } else if (lines[1].equalsIgnoreCase(LeaveSign.LEAVE_SIGN_TAG)) {
            Sign sign = (Sign) state;
            new LeaveSign(plugin, plugin.getGlobalProtectionCache().generateId(LeaveSign.class, sign.getWorld()), sign);
            event.setCancelled(true);
        }
    }
}
 
源代码4 项目: DungeonsXL   文件: DSignListener.java
@EventHandler
public void onSignChange(SignChangeEvent event) {
    String[] lines = event.getLines();
    if (lines.length < 3 || !lines[0].startsWith("[")) {
        return;
    }
    Player player = event.getPlayer();
    Block block = event.getBlock();
    BlockState state = block.getState();
    if (!(state instanceof Sign)) {
        return;
    }

    Sign sign = (Sign) state;
    EditWorld editWorld = api.getEditWorld(sign.getWorld());
    if (editWorld == null) {
        return;
    }

    if (sign == null) {
        return;
    }
    // Override sign plugins color codes etc.
    sign.setLine(0, lines[0]);
    sign.setLine(1, lines[1]);
    sign.setLine(2, lines[2]);
    sign.setLine(3, lines[3]);

    if (DungeonsXL.LEGACY_SIGNS.containsKey(lines[0].substring(1, lines[0].length() - 1).toUpperCase())) {
        MessageUtil.sendMessage(player, ChatColor.RED + "https://erethon.de/resources/dxl-signs/deprecated.gif");
        MessageUtil.sendMessage(player, ChatColor.LIGHT_PURPLE + "https://github.com/DRE2N/DungeonsXL/wiki/Legacy-support#updating");
        event.setCancelled(true);
        event.getBlock().setType(VanillaItem.AIR.getMaterial());
        return;
    }

    DungeonSign dsign = editWorld.createDungeonSign(sign, sign.getLines());
    if (dsign == null) {
        return;
    }

    if (!DPermission.hasPermission(player, dsign.getBuildPermission())) {
        MessageUtil.sendMessage(player, DMessage.ERROR_NO_PERMISSIONS.getMessage());
        return;
    }

    if (dsign.validate()) {
        editWorld.registerSign(block);
        MessageUtil.sendMessage(player, DMessage.PLAYER_SIGN_CREATED.getMessage());

    } else {
        editWorld.removeDungeonSign(block);
        MessageUtil.sendMessage(player, DMessage.ERROR_SIGN_WRONG_FORMAT.getMessage());
    }
}
 
源代码5 项目: ArmorStandTools   文件: MainListener.java
@EventHandler
public void onSignChange(final SignChangeEvent event) {
    if(event.getBlock().hasMetadata("armorStand")) {
        final Block b = event.getBlock();
        final ArmorStand as = getArmorStand(b);
        if (as != null) {
            StringBuilder sb = new StringBuilder();
            for (String line : event.getLines()) {
                if (line != null && line.length() > 0) {
                    sb.append(ChatColor.translateAlternateColorCodes('&', line));
                }
            }
            String input = sb.toString();
            if(b.hasMetadata("setName")) {
                if (input.length() > 0) {
                    as.setCustomName(input);
                    as.setCustomNameVisible(true);
                } else {
                    as.setCustomName("");
                    as.setCustomNameVisible(false);
                    as.setCustomNameVisible(false);
                }
            } else if(b.hasMetadata("setSkull")) {
                if(MC_USERNAME_PATTERN.matcher(input).matches()) {
                    b.setMetadata("protected", new FixedMetadataValue(plugin, true));
                    event.getPlayer().sendMessage(ChatColor.GOLD + Config.pleaseWait);
                    String cmd = "minecraft:give " + event.getPlayer().getName() + " minecraft:player_head{SkullOwner:\"" + input + "\"} 1";
                    String current = b.getWorld().getGameRuleValue("sendCommandFeedback");
                    b.getWorld().setGameRuleValue("sendCommandFeedback", "false");
                    Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd);
                    b.getWorld().setGameRuleValue("sendCommandFeedback", current);
                    boolean found = false;
                    for(int slot : event.getPlayer().getInventory().all(Material.PLAYER_HEAD).keySet()) {
                        ItemStack skull = event.getPlayer().getInventory().getItem(slot);
                        SkullMeta sm = (SkullMeta) skull.getItemMeta();
                        if(sm.hasOwner() && input.equalsIgnoreCase(sm.getOwningPlayer().getName())) {
                            as.setHelmet(skull);
                            event.getPlayer().sendMessage(ChatColor.GREEN + Config.appliedHead + ChatColor.GOLD + " " + input);
                            event.getPlayer().getInventory().setItem(slot, null);
                            found = true;
                            break;
                        }
                    }
                    if(!found) {
                        event.getPlayer().sendMessage(ChatColor.GOLD + Config.headFailed);
                    }
                } else {
                    event.getPlayer().sendMessage(ChatColor.RED + input + " " + Config.invalidName);
                }
            }
        }
        event.setCancelled(true);
        b.removeMetadata("armorStand", plugin);
        b.removeMetadata("setName", plugin);
        b.removeMetadata("setSkull", plugin);
        b.setType(Material.AIR);
    }
}