Search in sources :

Example 1 with PermissionEvent

use of com.minecolonies.coremod.colony.permissions.PermissionEvent in project minecolonies by Minecolonies.

the class ColonyPermissionEventHandler method cancelEvent.

/**
 * Cancel an event and record the denial details in the colony's town hall.
 * @param event the event to cancel
 * @param player the player whose action was denied
 * @param colony the colony where the event took place
 * @param action the action which was denied
 * @param pos the location of the action which was denied
 */
private static void cancelEvent(final Event event, @Nullable final EntityPlayer player, final Colony colony, final Action action, final BlockPos pos) {
    event.setResult(Event.Result.DENY);
    if (event.isCancelable()) {
        event.setCanceled(true);
        if (player == null) {
            if (colony.hasTownHall()) {
                colony.getBuildingManager().getTownHall().addPermissionEvent(new PermissionEvent(null, "-", action, pos));
            }
            return;
        }
        if (colony.hasTownHall()) {
            colony.getBuildingManager().getTownHall().addPermissionEvent(new PermissionEvent(player.getUniqueID(), player.getName(), action, pos));
        }
        if (player instanceof FakePlayer) {
            return;
        }
        LanguageHandler.sendPlayerMessage(player, "com.minecolonies.coremod.permission.no");
    }
}
Also used : PermissionEvent(com.minecolonies.coremod.colony.permissions.PermissionEvent) FakePlayer(net.minecraftforge.common.util.FakePlayer)

Example 2 with PermissionEvent

use of com.minecolonies.coremod.colony.permissions.PermissionEvent in project minecolonies by Minecolonies.

the class BuildingTownHall method serializeToView.

@Override
public void serializeToView(@NotNull final ByteBuf buf) {
    super.serializeToView(buf);
    buf.writeInt(permissionEvents.size());
    for (final PermissionEvent event : permissionEvents) {
        event.serialize(buf);
    }
}
Also used : PermissionEvent(com.minecolonies.coremod.colony.permissions.PermissionEvent)

Example 3 with PermissionEvent

use of com.minecolonies.coremod.colony.permissions.PermissionEvent in project minecolonies by Minecolonies.

the class WindowTownHall method addPlayerToColonyClicked.

/**
 * Action performed when remove player button is clicked.
 *
 * @param button Button that holds the user clicked on.
 */
private void addPlayerToColonyClicked(@NotNull final Button button) {
    final int row = permEventList.getListElementIndexByPane(button);
    if (row >= 0 && row < building.getPermissionEvents().size()) {
        final PermissionEvent user = building.getPermissionEvents().get(row);
        MineColonies.getNetwork().sendToServer(new PermissionsMessage.AddPlayerOrFakePlayer(townHall.getColony(), user.getName(), user.getId()));
    }
}
Also used : PermissionEvent(com.minecolonies.coremod.colony.permissions.PermissionEvent)

Aggregations

PermissionEvent (com.minecolonies.coremod.colony.permissions.PermissionEvent)3 FakePlayer (net.minecraftforge.common.util.FakePlayer)1