Add more events
This commit is contained in:
parent
f3030afa33
commit
cd850eeee3
|
|
@ -0,0 +1,31 @@
|
|||
package com.alttd.playershops.events;
|
||||
|
||||
import com.alttd.playershops.shop.PlayerShop;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ShopItemAmountChangeEvent extends ShopEvent {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private final int newAmount;
|
||||
|
||||
public ShopItemAmountChangeEvent(PlayerShop shop, int newAmount) {
|
||||
super(shop);
|
||||
this.newAmount = newAmount;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
public int getNewAmount() {
|
||||
return newAmount;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.alttd.playershops.events;
|
||||
|
||||
import com.alttd.playershops.shop.PlayerShop;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ShopItemChangeEvent extends ShopEvent {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private final ItemStack newItem;
|
||||
|
||||
public ShopItemChangeEvent(PlayerShop shop, ItemStack newItem) {
|
||||
super(shop);
|
||||
this.newItem = newItem;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
public ItemStack getNewItem() {
|
||||
return newItem;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.alttd.playershops.events;
|
||||
|
||||
import com.alttd.playershops.shop.PlayerShop;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ShopPriceChangeEvent extends ShopEvent {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private final double newPrice;
|
||||
|
||||
public ShopPriceChangeEvent(PlayerShop shop, double newPrice) {
|
||||
super(shop);
|
||||
this.newPrice = newPrice;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
public double getNewPrice() {
|
||||
return newPrice;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.alttd.playershops.events;
|
||||
|
||||
import com.alttd.playershops.shop.PlayerShop;
|
||||
import com.alttd.playershops.shop.ShopType;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ShopTypeChangeEvent extends ShopEvent {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private final ShopType shopType;
|
||||
|
||||
public ShopTypeChangeEvent(PlayerShop shop, ShopType shopType) {
|
||||
super(shop);
|
||||
this.shopType = shopType;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
public ShopType getShopType() {
|
||||
return shopType;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package com.alttd.playershops.shop;
|
||||
|
||||
import com.alttd.playershops.PlayerShops;
|
||||
import com.alttd.playershops.events.PlayerExchangeShopEvent;
|
||||
import com.alttd.playershops.events.*;
|
||||
import com.alttd.playershops.utils.EconomyUtils;
|
||||
import com.alttd.playershops.utils.InventoryUtils;
|
||||
import com.alttd.playershops.utils.ShopUtil;
|
||||
|
|
@ -30,7 +30,7 @@ public class PlayerShop {
|
|||
private String ownerName;
|
||||
@Getter
|
||||
private UUID ownerUUID;
|
||||
@Getter @Setter
|
||||
@Getter
|
||||
private ShopType type = ShopType.NONE;
|
||||
@Getter
|
||||
private final Location signLocation;
|
||||
|
|
@ -38,19 +38,20 @@ public class PlayerShop {
|
|||
private final Location shopLocation;
|
||||
@Getter
|
||||
private String server;
|
||||
@Getter @Setter
|
||||
@Getter
|
||||
private double price;
|
||||
@Getter @Setter
|
||||
@Getter
|
||||
private int amount;
|
||||
@Getter @Setter
|
||||
@Getter
|
||||
private double balance;
|
||||
@Getter @Setter
|
||||
@Getter
|
||||
private ItemStack itemStack;
|
||||
@Getter @Setter
|
||||
private long lastTransaction;
|
||||
@Getter @Setter
|
||||
private boolean notifiedOwner = false;
|
||||
|
||||
@Getter @Setter
|
||||
private boolean dirty;
|
||||
|
||||
public PlayerShop(Location shopLocation, Location signLocation, Player player) {
|
||||
this(shopLocation, signLocation, player.getUniqueId(), player.getName());
|
||||
|
|
@ -65,7 +66,7 @@ public class PlayerShop {
|
|||
updateSign();
|
||||
}
|
||||
|
||||
public static PlayerShop create(UUID shopID, String ownerName, UUID ownerUUID, ShopType shopType, String server,
|
||||
public static PlayerShop load(UUID shopID, String ownerName, UUID ownerUUID, ShopType shopType, String server,
|
||||
Location shopLocation, Location signLocation, double price, int amount,
|
||||
double balance, ItemStack item, long lastTransaction) {
|
||||
PlayerShop playerShop = new PlayerShop(shopLocation, signLocation, ownerUUID, ownerName);
|
||||
|
|
@ -162,12 +163,26 @@ public class PlayerShop {
|
|||
return this.getPrice() / this.getAmount();
|
||||
}
|
||||
|
||||
public void removeBalance(double amount) {
|
||||
public boolean removeBalance(double amount) {
|
||||
ShopBalanceChangeEvent shopBalanceChangeEvent = new ShopBalanceChangeEvent(this, ShopBalanceChangeEvent.ChangeReason.WIDRAW);
|
||||
if (Util.callCancellableEvent(shopBalanceChangeEvent))
|
||||
return false; // cancelled by another plugin, does this need logging?
|
||||
|
||||
setDirty(true);
|
||||
update();
|
||||
this.balance -= amount;
|
||||
return true;
|
||||
}
|
||||
|
||||
public void addBalance(double amount) {
|
||||
public boolean addBalance(double amount) {
|
||||
ShopBalanceChangeEvent shopBalanceChangeEvent = new ShopBalanceChangeEvent(this, ShopBalanceChangeEvent.ChangeReason.DEPOSIT);
|
||||
if (Util.callCancellableEvent(shopBalanceChangeEvent))
|
||||
return false; // cancelled by another plugin, does this need logging?
|
||||
|
||||
setDirty(true);
|
||||
update();
|
||||
this.balance += amount;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -209,9 +224,11 @@ public class PlayerShop {
|
|||
return TransactionError.CANCELLED;
|
||||
}
|
||||
|
||||
if (!addBalance(price))
|
||||
return TransactionError.CANCELLED;
|
||||
|
||||
InventoryUtils.removeItem(getInventory(), itemStack);
|
||||
EconomyUtils.removeFunds(player, price);
|
||||
addBalance(price);
|
||||
InventoryUtils.addItem(player.getInventory(), itemStack);
|
||||
player.updateInventory();
|
||||
|
||||
|
|
@ -247,8 +264,10 @@ public class PlayerShop {
|
|||
return TransactionError.CANCELLED;
|
||||
}
|
||||
|
||||
if (!removeBalance(price))
|
||||
return TransactionError.CANCELLED;
|
||||
|
||||
InventoryUtils.removeItem(player.getInventory(), itemStack);
|
||||
removeBalance(price);
|
||||
EconomyUtils.addFunds(player, price);
|
||||
InventoryUtils.addItem(getInventory(), itemStack);
|
||||
player.updateInventory();
|
||||
|
|
@ -260,4 +279,51 @@ public class PlayerShop {
|
|||
return TransactionError.NONE;
|
||||
}
|
||||
|
||||
public void setItemStack(ItemStack itemStack) {
|
||||
ShopItemChangeEvent shopItemChangeEvent = new ShopItemChangeEvent(this, itemStack);
|
||||
if (Util.callCancellableEvent(shopItemChangeEvent))
|
||||
return; // cancelled by another plugin, does this need logging?
|
||||
|
||||
this.itemStack = itemStack;
|
||||
setDirty(true);
|
||||
update();
|
||||
}
|
||||
|
||||
public void setPrice(double price) {
|
||||
ShopPriceChangeEvent shopPriceChangeEvent = new ShopPriceChangeEvent(this, price);
|
||||
if (Util.callCancellableEvent(shopPriceChangeEvent))
|
||||
return; // cancelled by another plugin, does this need logging?
|
||||
|
||||
this.price = price;
|
||||
setDirty(true);
|
||||
update();
|
||||
}
|
||||
|
||||
public void setAmount(int amount) {
|
||||
ShopItemAmountChangeEvent ShopItemAmountChangeEvent = new ShopItemAmountChangeEvent(this, amount);
|
||||
if (Util.callCancellableEvent(ShopItemAmountChangeEvent))
|
||||
return; // cancelled by another plugin, does this need logging?
|
||||
|
||||
this.amount = amount;
|
||||
setDirty(true);
|
||||
update();
|
||||
}
|
||||
|
||||
public void setShopType(ShopType shopType) {
|
||||
ShopTypeChangeEvent shopTypeChangeEvent = new ShopTypeChangeEvent(this, shopType);
|
||||
if (Util.callCancellableEvent(shopTypeChangeEvent))
|
||||
return; // cancelled by another plugin, does this need logging?
|
||||
|
||||
this.type = shopType;
|
||||
setDirty(true);
|
||||
update();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates and saves the PlayerShop in the database
|
||||
*/
|
||||
private void update() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user