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);
}
}
}
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());
}
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);
}
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();
}
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);
}
Aggregations