From 725b09e67d47388b80c4d40ff855b6a86d7e0c5f Mon Sep 17 00:00:00 2001 From: Daniel Saukel Date: Sat, 25 Apr 2020 00:34:45 +0200 Subject: [PATCH] Add new reward event --- .../event/group/GroupCollectRewardEvent.java | 92 +++++++++++++++++++ .../GroupEvent.java} | 22 ++--- .../event/reward/RewardAdditionEvent.java | 72 --------------- .../dungeonsxl/event/reward/RewardEvent.java | 47 ---------- .../event/reward/RewardRegistrationEvent.java | 54 ----------- 5 files changed, 103 insertions(+), 184 deletions(-) create mode 100644 api/src/main/java/de/erethon/dungeonsxl/api/event/group/GroupCollectRewardEvent.java rename api/src/main/java/de/erethon/dungeonsxl/api/event/{dungeon/DungeonEvent.java => group/GroupEvent.java} (63%) delete mode 100644 core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardAdditionEvent.java delete mode 100644 core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardEvent.java delete mode 100644 core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardRegistrationEvent.java diff --git a/api/src/main/java/de/erethon/dungeonsxl/api/event/group/GroupCollectRewardEvent.java b/api/src/main/java/de/erethon/dungeonsxl/api/event/group/GroupCollectRewardEvent.java new file mode 100644 index 00000000..4c296232 --- /dev/null +++ b/api/src/main/java/de/erethon/dungeonsxl/api/event/group/GroupCollectRewardEvent.java @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2014-2020 Daniel Saukel + * + * This library is free software: you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNULesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along with + * this program. If not, see . + */ +package de.erethon.dungeonsxl.api.event.group; + +import de.erethon.dungeonsxl.api.Reward; +import de.erethon.dungeonsxl.api.player.PlayerGroup; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; + +/** + * Fired when a group collects a reward. + *

+ * In the default implementation, this happens when a player opens a reward chest. + * + * @author Daniel Saukel + */ +public class GroupCollectRewardEvent extends GroupEvent implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); + private boolean cancelled; + + private Player collector; + private Reward reward; + + public GroupCollectRewardEvent(PlayerGroup group, Player collector, Reward reward) { + super(group); + this.collector = collector; + this.reward = reward; + } + + /** + * Returns the player who collected the reward. + *

+ * Note that this may be null if addons add a way to give rewards that cannot be attributed to one collector. + * + * @return the player who collected the reward + */ + public Player getCollector() { + return collector; + } + + /** + * Returns the reward the group collected. + * + * @return the reward the group collected + */ + public Reward getReward() { + return reward; + } + + /** + * Sets the reward the group collected. + * + * @param reward the reward + */ + public void setReward(Reward reward) { + this.reward = reward; + } + + @Override + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } + +} diff --git a/api/src/main/java/de/erethon/dungeonsxl/api/event/dungeon/DungeonEvent.java b/api/src/main/java/de/erethon/dungeonsxl/api/event/group/GroupEvent.java similarity index 63% rename from api/src/main/java/de/erethon/dungeonsxl/api/event/dungeon/DungeonEvent.java rename to api/src/main/java/de/erethon/dungeonsxl/api/event/group/GroupEvent.java index 4cf4d824..c5b8e189 100644 --- a/api/src/main/java/de/erethon/dungeonsxl/api/event/dungeon/DungeonEvent.java +++ b/api/src/main/java/de/erethon/dungeonsxl/api/event/group/GroupEvent.java @@ -12,31 +12,31 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package de.erethon.dungeonsxl.api.event.dungeon; +package de.erethon.dungeonsxl.api.event.group; -import de.erethon.dungeonsxl.api.dungeon.Dungeon; +import de.erethon.dungeonsxl.api.player.PlayerGroup; import org.bukkit.event.Event; /** - * Superclass for events involving {@link Dungeon}s. + * Superclass for events involving DungeonsXL groups. * * @author Daniel Saukel */ -public abstract class DungeonEvent extends Event { +public abstract class GroupEvent extends Event { - protected Dungeon dungeon; + protected PlayerGroup group; - protected DungeonEvent(Dungeon dungeon) { - this.dungeon = dungeon; + protected GroupEvent(PlayerGroup group) { + this.group = group; } /** - * Returns the dungeon involved in this event. + * Returns the group involved in this event. * - * @return the dungeon involved in this event + * @return the group involved in this event */ - public Dungeon getDungeon() { - return dungeon; + public PlayerGroup getGroup() { + return group; } } diff --git a/core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardAdditionEvent.java b/core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardAdditionEvent.java deleted file mode 100644 index 86b80322..00000000 --- a/core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardAdditionEvent.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2012-2020 Frank Baumann - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package de.erethon.dungeonsxl.event.reward; - -import de.erethon.dungeonsxl.api.Reward; -import de.erethon.dungeonsxl.player.DGroup; -import org.bukkit.event.Cancellable; -import org.bukkit.event.HandlerList; - -/** - * @author Daniel Saukel - */ -public class RewardAdditionEvent extends RewardEvent implements Cancellable { - - private static final HandlerList handlers = new HandlerList(); - private boolean cancelled; - - private DGroup dGroup; - - public RewardAdditionEvent(Reward reward, DGroup dGroup) { - super(reward); - this.dGroup = dGroup; - } - - /** - * @return the dGroup - */ - public DGroup getDGroup() { - return dGroup; - } - - /** - * @param dGroup the dGroup to set - */ - public void setDGroup(DGroup dGroup) { - this.dGroup = dGroup; - } - - @Override - public HandlerList getHandlers() { - return handlers; - } - - public static HandlerList getHandlerList() { - return handlers; - } - - @Override - public boolean isCancelled() { - return cancelled; - } - - @Override - public void setCancelled(boolean cancelled) { - this.cancelled = cancelled; - } - -} diff --git a/core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardEvent.java b/core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardEvent.java deleted file mode 100644 index 98f30b2a..00000000 --- a/core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardEvent.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2012-2020 Frank Baumann - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package de.erethon.dungeonsxl.event.reward; - -import de.erethon.dungeonsxl.api.Reward; -import org.bukkit.event.Event; - -/** - * @author Daniel Saukel - */ -public abstract class RewardEvent extends Event { - - protected Reward reward; - - public RewardEvent(Reward reward) { - this.reward = reward; - } - - /** - * @return the reward - */ - public Reward getReward() { - return reward; - } - - /** - * @param reward the reward to set - */ - public void setReward(Reward reward) { - this.reward = reward; - } - -} diff --git a/core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardRegistrationEvent.java b/core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardRegistrationEvent.java deleted file mode 100644 index e449141f..00000000 --- a/core/src/main/java/de/erethon/dungeonsxl/event/reward/RewardRegistrationEvent.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2012-2020 Frank Baumann - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package de.erethon.dungeonsxl.event.reward; - -import de.erethon.dungeonsxl.api.Reward; -import org.bukkit.event.Cancellable; -import org.bukkit.event.HandlerList; - -/** - * @author Daniel Saukel - */ -public class RewardRegistrationEvent extends RewardEvent implements Cancellable { - - private static final HandlerList handlers = new HandlerList(); - private boolean cancelled; - - public RewardRegistrationEvent(Reward reward) { - super(reward); - } - - @Override - public HandlerList getHandlers() { - return handlers; - } - - public static HandlerList getHandlerList() { - return handlers; - } - - @Override - public boolean isCancelled() { - return cancelled; - } - - @Override - public void setCancelled(boolean cancelled) { - this.cancelled = cancelled; - } - -}