001/* 002 * PlotSquared, a land and world management plugin for Minecraft. 003 * Copyright (C) IntellectualSites <https://intellectualsites.com> 004 * Copyright (C) IntellectualSites team and contributors 005 * 006 * This program is free software: you can redistribute it and/or modify 007 * it under the terms of the GNU General Public License as published by 008 * the Free Software Foundation, either version 3 of the License, or 009 * (at your option) any later version. 010 * 011 * This program is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 014 * GNU General Public License for more details. 015 * 016 * You should have received a copy of the GNU General Public License 017 * along with this program. If not, see <https://www.gnu.org/licenses/>. 018 */ 019package com.plotsquared.core.events; 020 021import com.plotsquared.core.player.PlotPlayer; 022import com.plotsquared.core.plot.Plot; 023import org.checkerframework.checker.nullness.qual.Nullable; 024 025import java.util.UUID; 026 027/** 028 * Parent class for the varies events regarding a player being added/removed/denied/trusted 029 * 030 * @since 7.6.0 031 */ 032public class PlayerPlotAddRemoveEvent extends PlotEvent { 033 034 private final Reason reason; 035 private final PlotPlayer<?> initiator; 036 private final UUID player; 037 038 protected PlayerPlotAddRemoveEvent(final PlotPlayer<?> initiator, Plot plot, final UUID player, final Reason reason) { 039 super(plot); 040 this.initiator = initiator; 041 this.player = player; 042 this.reason = reason; 043 } 044 045 /** 046 * The player to be added/denied/removed/trusted. 047 * 048 * @return UUID 049 */ 050 public UUID getPlayer() { 051 return this.player; 052 } 053 054 /** 055 * The player initiating the action. May be null (if a player, or a {@link com.plotsquared.core.player.ConsolePlayer}. 056 * 057 * @return PlotPlayer 058 */ 059 @Nullable 060 public PlotPlayer<?> getInitiator() { 061 return this.initiator; 062 } 063 064 /** 065 * Get the reason the player is being added/removed/denied/trusted 066 * 067 * @return Reason 068 */ 069 public Reason getReason() { 070 return this.reason; 071 } 072 073 public enum Reason { 074 /** 075 * If a plot merge caused the player to be added/removed/denied/trusted 076 */ 077 MERGE, 078 /** 079 * If a command caused the player to be added/removed/denied/trusted 080 */ 081 COMMAND, 082 /** 083 * If something unknown caused the player to be added/removed/denied/trusted 084 */ 085 UNKNOWN 086 } 087 088}