private void onMouseClicked(Player player, Mouse button, boolean pressed, int x, int y) { PlayerClickEvent event = Spout.getEventManager() .callEvent(new PlayerClickEvent(player, button, pressed, new IntVector2(x, y))); if (event.isCancelled()) { return; } if (Spout.debugMode()) { Spout.log("Mouse clicked at {" + x + "," + y + "} was " + (pressed ? "pressed" : "released")); } Screen s = getInputScreen(); if (s != null) { Widget w = s.getWidgetAt(x, y); if (w != null) { Widget fw = s.getFocusedWidget(); if (fw != null && !fw.equals(w)) { s.setFocus(w, FocusReason.CLICKED); } w.onClicked(event); } } executeBindings(getMouseBindingsFor(button), player, pressed); }
private void onKeyPressed(Player player, Keyboard key, boolean pressed, char ch) { final PlayerKeyEvent event = Spout.getEventManager().callEvent(new PlayerKeyEvent(player, key, pressed, ch)); if (event.isCancelled()) { return; } if (Spout.debugMode()) { Spout.log("Key " + key + " was " + (pressed ? "pressed" : "released")); } // SHIFT + TAB changes the focus index Screen in = getInputScreen(); if (key == FOCUS_KEY && pressed) { if (in != null) { if (org.lwjgl.input.Keyboard.isKeyDown(Keyboard.KEY_LSHIFT.getId()) || org.lwjgl.input.Keyboard.isKeyDown(Keyboard.KEY_RSHIFT.getId())) { in.previousFocus(FocusReason.KEYBOARD_TAB); } else { in.nextFocus(FocusReason.KEYBOARD_TAB); } } } // send event to the focused widget if (in != null) { Widget w = in.getFocusedWidget(); if (w != null) { w.onKey(event); } } executeBindings(getKeyBindingsFor(key), player, pressed); }
/** * Sets the amount of ticks the entity has been on fire. * * @param fireTicks the new amount of ticks the entity has been on fire for. */ public void setFireTicks(int fireTicks) { if (fireTicks > 0) { EntityCombustEvent event = Spout.getEventManager() .callEvent(new EntityCombustEvent(getParent().getParent(), fireTicks)); fireTicks = event.getDuration(); } this.fireTicks = fireTicks; }
/** * Checks whether a certain slot can be set to the item specified<br> * Fires the {@link InventoryCanSetEvent} * * @param inventory of the slot * @param index of the slot * @param item to set to * @return True if the slot can be set to the item, False if not */ protected boolean canSet(Inventory inventory, int index, ItemStack item) { final boolean canSet = inventory.canSet(index, item); InventoryCanSetEvent event = Spout.getEventManager() .callEvent( new InventoryCanSetEvent( inventory, new PlayerCause(getPlayer()), index, item, !canSet)); return !event.isCancelled(); }
@Override public void updateWeather(Weather oldWeather, Weather newWeather) { WeatherChangeEvent event = Spout.getEventManager().callEvent(new WeatherChangeEvent(this, oldWeather, newWeather)); if (event.isCancelled()) { return; } this.getWorld().getDataMap().put(VanillaData.WEATHER, newWeather); for (Player player : this.getWorld().getPlayers()) { player.getNetworkSynchronizer().callProtocolEvent(event); } }
@Override public void setController(Controller controller, Source source) { EntityControllerChangeEvent event = Spout.getEventManager() .callEvent(new EntityControllerChangeEvent(this, source, controller)); Controller newController = event.getNewController(); controllerLive.set(controller); if (newController != null) { controller.attachToEntity(this); if (controller instanceof PlayerController) { setObserver(true); } controller.onAttached(); } }
@Override public void updateWeather(Weather oldWeather, Weather newWeather) { org.spout.vanilla.event.world.WeatherChangeEvent event = Spout.getEventManager() .callEvent( new org.spout.vanilla.event.world.WeatherChangeEvent(this, oldWeather, newWeather)); if (event.isCancelled()) { return; } this.getWorld().getDataMap().put(Data.WEATHER, newWeather); byte reason = (newWeather.equals(Weather.RAIN) || newWeather.equals(Weather.THUNDERSTORM)) ? ChangeGameStateMessage.BEGIN_RAINING : ChangeGameStateMessage.END_RAINING; broadcastMessage(new ChangeGameStateMessage(reason)); }
@Override public void onInteractBy(Entity entity, Block block, Action type, BlockFace clickedFace) { EntityInteractBlockEvent event; if (entity instanceof Player) { event = new PlayerInteractBlockEvent( (Player) entity, block, block.getPosition(), clickedFace, type); } else { event = new EntityInteractBlockEvent(entity, block, block.getPosition(), clickedFace); } if (Spout.getEventManager().callEvent(event).isCancelled()) { return; } super.onInteract(entity, block, type, clickedFace); for (Class<? extends BlockComponent> c : getComponents()) { BlockComponent get = block.get(c); if (get != null) { get.onInteract(event); } } }
@Override public String[] getGroups(World world) { PermissionGroupsEvent event = Spout.getEventManager().callEvent(new PermissionGroupsEvent(world, this)); return event.getGroups(); }
@Override public boolean hasPermission(World world, String node) { PermissionNodeEvent event = Spout.getEventManager().callEvent(new PermissionNodeEvent(world, this, node)); return event.getResult().getResult(); }