Search in sources :

Example 1 with User

use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.

the class InventoryEventListeners method onInventoryClose.

@EventHandler
public void onInventoryClose(InventoryCloseEvent e) {
    Player player = (Player) e.getPlayer();
    User user = UserLoader.fromPlayer(player);
    user.debug("inventory close event. invTitle=" + e.getView().getTitle() + ", viewtype=" + e.getView().getType());
    if (user.hasOpenGUI()) {
        user.debug("- has open gui");
        if (e.getView().getTitle().equals(user.getCurrentGUI().getMenuName())) {
            user.debug("- matches gui name " + user.getCurrentGUI().getMenuName() + ", marking closed");
            user.closeGUI(false);
        }
    }
}
Also used : Player(org.bukkit.entity.Player) User(mc.dragons.core.gameobject.user.User) EventHandler(org.bukkit.event.EventHandler)

Example 2 with User

use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.

the class PlayerEventListeners method onCommandPreprocess.

@EventHandler
public void onCommandPreprocess(PlayerCommandPreprocessEvent event) {
    Player player = event.getPlayer();
    User user = UserLoader.fromPlayer(player);
    if (System.currentTimeMillis() - lastCommand.getOrDefault(player, 0L) < commandSpamThreshold && !PermissionUtil.verifyActivePermissionLevel(user, PermissionLevel.HELPER, false)) {
        player.sendMessage(ChatColor.RED + "Please do not spam commands!");
        event.setCancelled(true);
    }
    lastCommand.put(player, System.currentTimeMillis());
}
Also used : Player(org.bukkit.entity.Player) User(mc.dragons.core.gameobject.user.User) EventHandler(org.bukkit.event.EventHandler)

Example 3 with User

use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.

the class PlayerEventListeners method onGameModeChange.

@EventHandler
public void onGameModeChange(PlayerGameModeChangeEvent event) {
    LOGGER.trace("Gamemode change event on " + event.getPlayer().getName() + " to " + event.getNewGameMode());
    User user = UserLoader.fromPlayer(event.getPlayer());
    user.setGameMode(event.getNewGameMode(), false);
}
Also used : User(mc.dragons.core.gameobject.user.User) EventHandler(org.bukkit.event.EventHandler)

Example 4 with User

use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.

the class PlayerEventListeners method onPickupItem.

@EventHandler
public void onPickupItem(EntityPickupItemEvent event) {
    if (event.getEntityType() != EntityType.PLAYER)
        return;
    final Player player = (Player) event.getEntity();
    ItemStack pickup = event.getItem().getItemStack();
    User user = UserLoader.fromPlayer(player);
    final Item item = ItemLoader.fromBukkit(pickup);
    if (item == null)
        return;
    LOGGER.trace("Pickup item event on " + player.getName() + " of " + (item == null ? "null" : item.getIdentifier()) + " (x" + pickup.getAmount() + ")");
    if (item.getItemClass().getClassName().equals(GOLD_CURRENCY_ITEM_CLASS_NAME)) {
        int amount = pickup.getAmount();
        user.giveGold(amount * 1.0D);
        sync(() -> Arrays.asList(player.getInventory().getContents()).stream().filter(i -> (i != null)).filter(i -> (i.getItemMeta() != null)).map(i -> ItemLoader.fromBukkit(i)).filter(Objects::nonNull).filter(i -> i.getClassName().equals(GOLD_CURRENCY_ITEM_CLASS_NAME)).forEach(i -> {
            player.getInventory().remove(i.getItemStack());
            plugin.getGameObjectRegistry().removeFromDatabase(item);
        }));
        player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_HARP, 1.0F, 1.3F);
        return;
    }
    item.setQuantity(pickup.getAmount());
    user.giveItem(item, true, false, false);
    player.playSound(player.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1.0F, 1.0F);
    event.setCancelled(true);
    event.getItem().remove();
}
Also used : NPCLoader(mc.dragons.core.gameobject.npc.NPCLoader) Arrays(java.util.Arrays) UserHookRegistry(mc.dragons.core.gameobject.user.UserHookRegistry) PermissionUtil(mc.dragons.core.util.PermissionUtil) Event(org.bukkit.event.Event) User(mc.dragons.core.gameobject.user.User) PlayerMoveEvent(org.bukkit.event.player.PlayerMoveEvent) HashBasedTable(com.google.common.collect.HashBasedTable) Player(org.bukkit.entity.Player) EventHandler(org.bukkit.event.EventHandler) ItemLoader(mc.dragons.core.gameobject.item.ItemLoader) Block(org.bukkit.block.Block) PermissionLevel(mc.dragons.core.gameobject.user.permission.PermissionLevel) Map(java.util.Map) Material(org.bukkit.Material) ItemClass(mc.dragons.core.gameobject.item.ItemClass) Sign(org.bukkit.block.Sign) PlayerJoinEvent(org.bukkit.event.player.PlayerJoinEvent) DragonsLogger(mc.dragons.core.logging.DragonsLogger) StringUtil(mc.dragons.core.util.StringUtil) UserLoader(mc.dragons.core.gameobject.user.UserLoader) Entity(org.bukkit.entity.Entity) FloorLoader(mc.dragons.core.gameobject.floor.FloorLoader) ItemConstants(mc.dragons.core.gameobject.item.ItemConstants) UUID(java.util.UUID) Sound(org.bukkit.Sound) Item(mc.dragons.core.gameobject.item.Item) EntityType(org.bukkit.entity.EntityType) ItemClassLoader(mc.dragons.core.gameobject.item.ItemClassLoader) ItemStack(org.bukkit.inventory.ItemStack) Objects(java.util.Objects) Floor(mc.dragons.core.gameobject.floor.Floor) List(java.util.List) PlayerDeathEvent(org.bukkit.event.entity.PlayerDeathEvent) PlayerQuitEvent(org.bukkit.event.player.PlayerQuitEvent) BukkitUtil.sync(mc.dragons.core.util.BukkitUtil.sync) PlayerGameModeChangeEvent(org.bukkit.event.player.PlayerGameModeChangeEvent) HashMap(java.util.HashMap) FixedMetadataValue(org.bukkit.metadata.FixedMetadataValue) Action(org.bukkit.event.block.Action) EntityPickupItemEvent(org.bukkit.event.entity.EntityPickupItemEvent) UserHook(mc.dragons.core.gameobject.user.UserHook) ArrayList(java.util.ArrayList) GameMode(org.bukkit.GameMode) GameObjectType(mc.dragons.core.gameobject.GameObjectType) EntityShootBowEvent(org.bukkit.event.entity.EntityShootBowEvent) PlayerCommandPreprocessEvent(org.bukkit.event.player.PlayerCommandPreprocessEvent) AsyncPlayerChatEvent(org.bukkit.event.player.AsyncPlayerChatEvent) PlayerPickupArrowEvent(org.bukkit.event.player.PlayerPickupArrowEvent) PlayerInteractEvent(org.bukkit.event.player.PlayerInteractEvent) Listener(org.bukkit.event.Listener) PlayerDropItemEvent(org.bukkit.event.player.PlayerDropItemEvent) NPCTrigger(mc.dragons.core.gameobject.npc.NPCConditionalActions.NPCTrigger) PlayerInteractEntityEvent(org.bukkit.event.player.PlayerInteractEntityEvent) PlayerItemHeldEvent(org.bukkit.event.player.PlayerItemHeldEvent) Dragons(mc.dragons.core.Dragons) Consumer(java.util.function.Consumer) FoodLevelChangeEvent(org.bukkit.event.entity.FoodLevelChangeEvent) ChatColor(org.bukkit.ChatColor) Table(com.google.common.collect.Table) NPC(mc.dragons.core.gameobject.npc.NPC) BukkitUtil.rollingAsync(mc.dragons.core.util.BukkitUtil.rollingAsync) Item(mc.dragons.core.gameobject.item.Item) Player(org.bukkit.entity.Player) User(mc.dragons.core.gameobject.user.User) ItemStack(org.bukkit.inventory.ItemStack) EventHandler(org.bukkit.event.EventHandler)

Example 5 with User

use of mc.dragons.core.gameobject.user.User in project DragonsOnline by UniverseCraft.

the class PlayerEventListeners method onDropItem.

/**
 * FIXME Drop quantity sometimes calculated incorrectly when iterated
 *
 * @param event
 */
@EventHandler
public void onDropItem(PlayerDropItemEvent event) {
    ItemStack drop = event.getItemDrop().getItemStack();
    int amt = drop.getAmount();
    Item item = ItemLoader.fromBukkit(drop);
    LOGGER.trace("Drop item event on " + event.getPlayer().getName() + " of " + (item == null ? "null" : item.getIdentifier()) + " (x" + amt + ")");
    if (item == null) {
        return;
    }
    User user = UserLoader.fromPlayer(event.getPlayer());
    user.debug("held=" + item.getQuantity() + "=" + item.getItemStack().getAmount());
    if (item.isUndroppable() && event.getPlayer().getGameMode() != GameMode.CREATIVE) {
        user.sendActionBar(ChatColor.DARK_RED + "You can't drop this item!");
        event.setCancelled(true);
        return;
    }
    Item dropItem = itemLoader.registerNew(item);
    dropItem.setQuantity(amt);
    user.debug("drop=" + dropItem.getQuantity() + "=" + dropItem.getItemStack().getAmount());
    event.getItemDrop().setItemStack(dropItem.getItemStack());
    user.takeItem(item, amt, true, true, true);
}
Also used : Item(mc.dragons.core.gameobject.item.Item) User(mc.dragons.core.gameobject.user.User) ItemStack(org.bukkit.inventory.ItemStack) EventHandler(org.bukkit.event.EventHandler)

Aggregations

User (mc.dragons.core.gameobject.user.User)157 Player (org.bukkit.entity.Player)49 Document (org.bson.Document)28 EventHandler (org.bukkit.event.EventHandler)26 UUID (java.util.UUID)25 List (java.util.List)22 StringUtil (mc.dragons.core.util.StringUtil)21 ArrayList (java.util.ArrayList)19 ChatColor (org.bukkit.ChatColor)19 Collectors (java.util.stream.Collectors)18 WrappedUser (mc.dragons.tools.moderation.WrappedUser)17 Dragons (mc.dragons.core.Dragons)14 DragonsCommandExecutor (mc.dragons.core.commands.DragonsCommandExecutor)14 Item (mc.dragons.core.gameobject.item.Item)14 UserLoader (mc.dragons.core.gameobject.user.UserLoader)14 PermissionLevel (mc.dragons.core.gameobject.user.permission.PermissionLevel)14 Command (org.bukkit.command.Command)14 CommandSender (org.bukkit.command.CommandSender)14 NPC (mc.dragons.core.gameobject.npc.NPC)13 SystemProfileFlag (mc.dragons.core.gameobject.user.permission.SystemProfile.SystemProfileFlags.SystemProfileFlag)12