Search in sources :

Example 21 with Player

use of org.bukkit.entity.Player in project Prism-Bukkit by prism.

the class PlayerIdentification method getPrismPlayer.

/**
     * Returns a `prism_players` ID for the described player name. If
     * one cannot be found, returns 0.
     *
     * Used by the recorder in determining proper foreign key
     *
     * @param playerName
     * @return
     */
public static PrismPlayer getPrismPlayer(String playerName) {
    Player player = Bukkit.getPlayer(playerName);
    if (player != null)
        return getPrismPlayer(player);
    // Player not online, we need to go to cache
    PrismPlayer prismPlayer = lookupByName(playerName);
    // Player found! Return the id
    if (prismPlayer != null)
        return prismPlayer;
    // No player exists! We must create one
    return null;
}
Also used : Player(org.bukkit.entity.Player)

Example 22 with Player

use of org.bukkit.entity.Player in project Prism-Bukkit by prism.

the class PrismInventoryEvents method onInventoryClick.

/**
     * Handle inventory transfers
     * 
     * @param event
     */
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onInventoryClick(final InventoryClickEvent event) {
    if (!plugin.getConfig().getBoolean("prism.tracking.item-insert") && !plugin.getConfig().getBoolean("prism.tracking.item-remove"))
        return;
    Location containerLoc = null;
    // Store some info
    final Player player = (Player) event.getWhoClicked();
    final ItemStack currentitem = event.getCurrentItem();
    final ItemStack cursoritem = event.getCursor();
    // Get location
    if (event.getInventory().getHolder() instanceof BlockState) {
        final BlockState b = (BlockState) event.getInventory().getHolder();
        containerLoc = b.getLocation();
    } else if (event.getInventory().getHolder() instanceof Entity) {
        final Entity e = (Entity) event.getInventory().getHolder();
        containerLoc = e.getLocation();
    } else if (event.getInventory().getHolder() instanceof DoubleChest) {
        final DoubleChest chest = (DoubleChest) event.getInventory().getHolder();
        containerLoc = chest.getLocation();
    }
    // Double chests report 27 default size, though they actually
    // have 6 rows of 9 for 54 slots
    int defaultSize = event.getView().getType().getDefaultSize();
    if (event.getInventory().getHolder() instanceof DoubleChest) {
        defaultSize = event.getView().getType().getDefaultSize() * 2;
    }
    // slot count of the inventory. At that point, they represent the player inv.
    if (event.getSlot() == event.getRawSlot() && event.getRawSlot() <= defaultSize) {
        ItemStack addStack = null;
        ItemStack removeStack = null;
        if (currentitem != null && !currentitem.getType().equals(Material.AIR) && cursoritem != null && !cursoritem.getType().equals(Material.AIR)) {
            if (currentitem.isSimilar(cursoritem)) {
                // Items are similar enough to stack
                int amount = cursoritem.getAmount();
                if (event.isRightClick()) {
                    amount = 1;
                }
                int remaining = (currentitem.getMaxStackSize() - currentitem.getAmount());
                int inserted = (amount <= remaining) ? amount : remaining;
                if (inserted > 0) {
                    addStack = cursoritem.clone();
                    addStack.setAmount(inserted);
                }
            } else {
                // Items are not similar
                addStack = cursoritem.clone();
                removeStack = currentitem.clone();
            }
        } else if (currentitem != null && !currentitem.getType().equals(Material.AIR)) {
            removeStack = currentitem.clone();
        } else if (cursoritem != null && !cursoritem.getType().equals(Material.AIR)) {
            addStack = cursoritem.clone();
        }
        // Record events
        if (addStack != null) {
            recordInvAction(player, containerLoc, addStack, event.getRawSlot(), "item-insert", event);
        }
        if (removeStack != null) {
            recordInvAction(player, containerLoc, removeStack, event.getRawSlot(), "item-remove", event);
        }
        return;
    }
    if (event.isShiftClick() && cursoritem != null && cursoritem.getType().equals(Material.AIR)) {
        recordInvAction(player, containerLoc, currentitem, -1, "item-insert", event);
    }
}
Also used : Entity(org.bukkit.entity.Entity) Player(org.bukkit.entity.Player) BlockState(org.bukkit.block.BlockState) ItemStack(org.bukkit.inventory.ItemStack) DoubleChest(org.bukkit.block.DoubleChest) Location(org.bukkit.Location) EventHandler(org.bukkit.event.EventHandler)

Example 23 with Player

use of org.bukkit.entity.Player in project Prism-Bukkit by prism.

the class PrismPlayerEvents method onCraftItem.

/**
     * 
     * @param event
     */
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onCraftItem(final CraftItemEvent event) {
    final Player player = (Player) event.getWhoClicked();
    if (!Prism.getIgnore().event("craft-item", player))
        return;
    final ItemStack item = event.getRecipe().getResult();
    RecordingQueue.addToQueue(ActionFactory.createItemStack("craft-item", item, 1, -1, null, player.getLocation(), player.getName()));
}
Also used : Player(org.bukkit.entity.Player) ItemStack(org.bukkit.inventory.ItemStack) EventHandler(org.bukkit.event.EventHandler)

Example 24 with Player

use of org.bukkit.entity.Player in project Prism-Bukkit by prism.

the class PrismPlayerEvents method onCommandPreprocess.

/**
     * Log command use
     * 
     * @param event
     */
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onCommandPreprocess(PlayerCommandPreprocessEvent event) {
    final Player player = event.getPlayer();
    final String cmd = event.getMessage().toLowerCase();
    final String[] cmdArgs = cmd.split(" ");
    final String primaryCmd = cmdArgs[0].substring(1);
    if (plugin.getConfig().getBoolean("prism.alerts.illegal-commands.enabled")) {
        if (illegalCommands.contains(primaryCmd)) {
            final String msg = player.getName() + " attempted an illegal command: " + primaryCmd + ". Originally: " + cmd;
            player.sendMessage(Prism.messenger.playerError("Sorry, this command is not available in-game."));
            plugin.alertPlayers(null, msg);
            event.setCancelled(true);
            // Log to console
            if (plugin.getConfig().getBoolean("prism.alerts.illegal-commands.log-to-console")) {
                Prism.log(msg);
            }
            // Log to commands
            List<String> commands = plugin.getConfig().getStringList("prism.alerts.illegal-commands.log-commands");
            MiscUtils.dispatchAlert(msg, commands);
        }
    }
    if (!Prism.getIgnore().event("player-command", player))
        return;
    // Ignore some commands based on config
    if (ignoreCommands.contains(primaryCmd)) {
        return;
    }
    RecordingQueue.addToQueue(ActionFactory.createPlayer("player-command", player, event.getMessage()));
}
Also used : Player(org.bukkit.entity.Player) EventHandler(org.bukkit.event.EventHandler)

Example 25 with Player

use of org.bukkit.entity.Player in project Prism-Bukkit by prism.

the class PrismPlayerEvents method onPlayerBucketFill.

/**
     * 
     * @param event
     */
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerBucketFill(final PlayerBucketFillEvent event) {
    final Player player = event.getPlayer();
    if (!Prism.getIgnore().event("bucket-fill", player))
        return;
    final Block spot = event.getBlockClicked().getRelative(event.getBlockFace());
    String liquid_type = "milk";
    if (spot.getTypeId() == 8 || spot.getTypeId() == 9) {
        liquid_type = "water";
    } else if (spot.getTypeId() == 10 || spot.getTypeId() == 11) {
        liquid_type = "lava";
    }
    final Handler pa = ActionFactory.createPlayer("bucket-fill", player, liquid_type);
    // Override the location with the area taken
    pa.setX(spot.getX());
    pa.setY(spot.getY());
    pa.setZ(spot.getZ());
    RecordingQueue.addToQueue(pa);
}
Also used : Player(org.bukkit.entity.Player) Block(org.bukkit.block.Block) Handler(me.botsko.prism.actions.Handler) EventHandler(org.bukkit.event.EventHandler) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Player (org.bukkit.entity.Player)795 Test (org.junit.Test)229 EventHandler (org.bukkit.event.EventHandler)124 Location (org.bukkit.Location)94 ArrayList (java.util.ArrayList)49 Entity (org.bukkit.entity.Entity)39 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)38 World (org.bukkit.World)37 PlayerAuth (fr.xephi.authme.data.auth.PlayerAuth)33 net.aufdemrand.denizen.objects.dPlayer (net.aufdemrand.denizen.objects.dPlayer)29 OfflinePlayer (org.bukkit.OfflinePlayer)29 Block (org.bukkit.block.Block)29 ItemStack (org.bukkit.inventory.ItemStack)29 LimboPlayer (fr.xephi.authme.data.limbo.LimboPlayer)27 JobsPlayer (com.gamingmesh.jobs.container.JobsPlayer)25 FPlayer (me.totalfreedom.totalfreedommod.player.FPlayer)25 NotRegisteredException (com.palmergames.bukkit.towny.exceptions.NotRegisteredException)20 User (com.earth2me.essentials.User)18 Matchers.containsString (org.hamcrest.Matchers.containsString)18 LivingEntity (org.bukkit.entity.LivingEntity)17