Skip to content

Commit

Permalink
1.13.0
Browse files Browse the repository at this point in the history
  • Loading branch information
BenceX100 committed Feb 7, 2025
1 parent dc758ea commit ef8d647
Show file tree
Hide file tree
Showing 13 changed files with 316 additions and 261 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.artillexstudios</groupId>
<artifactId>AxTrade</artifactId>
<version>1.12.3</version>
<version>1.13.0</version>
<packaging>jar</packaging>

<name>AxTrade</name>
Expand Down Expand Up @@ -123,7 +123,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.18.2-R0.1-SNAPSHOT</version>
<version>1.19.4-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.artillexstudios.axtrade.api.events;

import com.artillexstudios.axtrade.trade.Trade;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;

public class AxTradeAbortEvent extends Event {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Trade trade;

public AxTradeAbortEvent(Trade trade) {
this.trade = trade;
}

public static HandlerList getHandlerList() {
return HANDLER_LIST;
}

@NotNull
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}

public Trade getTrade() {
return trade;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.artillexstudios.axtrade.api.events;

import com.artillexstudios.axtrade.trade.Trade;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;

public class AxTradeCompleteEvent extends Event implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Trade trade;
private boolean isCancelled = false;

public AxTradeCompleteEvent(Trade trade) {
this.trade = trade;
}

public static HandlerList getHandlerList() {
return HANDLER_LIST;
}

@NotNull
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}

@Override
public boolean isCancelled() {
return isCancelled;
}

@Override
public void setCancelled(boolean isCancelled) {
this.isCancelled = isCancelled;
}

public Trade getTrade() {
return trade;
}
}

This file was deleted.

14 changes: 8 additions & 6 deletions src/main/java/com/artillexstudios/axtrade/commands/Commands.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.artillexstudios.axtrade.hooks.HookManager;
import com.artillexstudios.axtrade.lang.LanguageManager;
import com.artillexstudios.axtrade.request.Requests;
import com.artillexstudios.axtrade.trade.Trade;
import com.artillexstudios.axtrade.trade.Trades;
import com.artillexstudios.axtrade.utils.CommandMessages;
import com.artillexstudios.axtrade.utils.NumberUtils;
Expand Down Expand Up @@ -132,7 +133,7 @@ public void reload(@NotNull CommandSender sender) {

LanguageManager.reload();

new HookManager().updateHooks();
HookManager.updateHooks();
NumberUtils.reload();

Bukkit.getConsoleSender().sendMessage(StringUtils.formatToString("&#00FFDD╚ &#AAFFDDSuccessful reload!"));
Expand All @@ -149,11 +150,12 @@ public void force(@NotNull Player sender, Player other) {
Trades.addTrade(sender, other);
}

// @Subcommand("test")
// @CommandPermission(value = "axtrade.admin")
// public void test(@NotNull Player sender) {
// Trades.addTrade(sender, sender);
// }
@Subcommand("preview")
@CommandPermission(value = "axtrade.admin")
public void preview(@NotNull Player sender) {
new Trade(sender, sender);
MESSAGEUTILS.sendLang(sender, "trade.preview-info");
}

private static BukkitCommandHandler handler = null;
public static void registerCommand() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,37 +1,31 @@
package com.artillexstudios.axtrade.listeners;

import com.artillexstudios.axapi.utils.Cooldown;
import com.artillexstudios.axtrade.request.Requests;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.jetbrains.annotations.NotNull;

import java.util.HashMap;

import static com.artillexstudios.axtrade.AxTrade.CONFIG;

public class EntityInteractListener implements Listener {
private static final HashMap<Player, Long> cd = new HashMap<>();
private static final Cooldown<Player> cooldown = new Cooldown<>();

@EventHandler (ignoreCancelled = true)
public void onInteract(@NotNull PlayerInteractEntityEvent event) {
if (!CONFIG.getBoolean("shift-click-send-request", true)) return;

final Player player = event.getPlayer();
if (!player.hasPermission("axtrade.trade")) return;

if (cd.containsKey(player) && System.currentTimeMillis() - cd.get(player) < 100L) return;

if (cooldown.hasCooldown(player)) return;
if (!player.isSneaking()) return;
if (!(event.getRightClicked() instanceof Player sendTo)) return;

cd.put(player, System.currentTimeMillis());
if (!sendTo.isOnline()) return;

cooldown.addCooldown(player, 100L);
Requests.addRequest(player, sendTo);
}

public static void onQuit(Player player) {
cd.remove(player);
event.setCancelled(true);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.artillexstudios.axtrade.trade.Trade;
import com.artillexstudios.axtrade.trade.Trades;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityPickupItemEvent;
Expand All @@ -26,7 +27,6 @@ public class TradeListeners implements Listener {
public void onQuit(@NotNull PlayerQuitEvent event) {
handleQuitTrade(event);
handleQuitRequest(event);
EntityInteractListener.onQuit(event.getPlayer());
}

public void handleQuitTrade(@NotNull PlayerQuitEvent event) {
Expand Down Expand Up @@ -54,25 +54,19 @@ public void handleQuitRequest(@NotNull PlayerQuitEvent event) {

@EventHandler
public void onDrop(@NotNull PlayerDropItemEvent event) {
final Player player = event.getPlayer();
final Trade trade = Trades.getTrade(player);
if (trade == null) return;
event.setCancelled(true);
cancelIfTrading(event.getPlayer(), event);
}

@EventHandler
public void onPickup(@NotNull EntityPickupItemEvent event) {
if (!(event.getEntity() instanceof Player player)) return;
final Trade trade = Trades.getTrade(player);
if (trade == null) return;
event.setCancelled(true);
cancelIfTrading(player, event);
}

@EventHandler
public void onMove(@NotNull PlayerMoveEvent event) {
if (event.getTo() == null) return;
final Player player = event.getPlayer();
final Trade trade = Trades.getTrade(player);
final Trade trade = Trades.getTrade(event.getPlayer());
if (trade == null) return;
if (System.currentTimeMillis() - trade.getPrepTime() < 1_000L) return;
if (event.getFrom().distanceSquared(event.getTo()) == 0) return;
Expand All @@ -81,8 +75,7 @@ public void onMove(@NotNull PlayerMoveEvent event) {

@EventHandler
public void onInteract(@NotNull PlayerInteractEvent event) {
final Player player = event.getPlayer();
final Trade trade = Trades.getTrade(player);
final Trade trade = Trades.getTrade(event.getPlayer());
if (trade == null) return;
if (System.currentTimeMillis() - trade.getPrepTime() < 1_000L) return;
event.setCancelled(true);
Expand All @@ -91,10 +84,15 @@ public void onInteract(@NotNull PlayerInteractEvent event) {

@EventHandler
public void onCommand(@NotNull PlayerCommandPreprocessEvent event) {
final Player player = event.getPlayer();
final Trade trade = Trades.getTrade(player);
final Trade trade = Trades.getTrade(event.getPlayer());
if (trade == null) return;
event.setCancelled(true);
trade.abort();
}

private void cancelIfTrading(Player player, Cancellable event) {
Trade trade = Trades.getTrade(player);
if (trade == null) return;
event.setCancelled(true);
}
}
23 changes: 12 additions & 11 deletions src/main/java/com/artillexstudios/axtrade/trade/Trade.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

import com.artillexstudios.axapi.scheduler.Scheduler;
import com.artillexstudios.axapi.utils.ContainerUtils;
import com.artillexstudios.axtrade.api.events.AxTradeCompletedEvent;
import com.artillexstudios.axtrade.api.events.AxTradeAbortEvent;
import com.artillexstudios.axtrade.api.events.AxTradeCompleteEvent;
import com.artillexstudios.axtrade.currency.CurrencyProcessor;
import com.artillexstudios.axtrade.hooks.currency.CurrencyHook;
import com.artillexstudios.axtrade.utils.HistoryUtils;
Expand Down Expand Up @@ -55,12 +56,16 @@ public void abort() {

public void abort(boolean force) {
if (!force && ended) return;

AxTradeAbortEvent event = new AxTradeAbortEvent(this);
Bukkit.getPluginManager().callEvent(event);

end();
player1.getTradeGui().getItems().forEach(itemStack -> {
player1.getTradeGui().getItems(false).forEach(itemStack -> {
if (itemStack == null) return;
player1.getPlayer().getInventory().addItem(itemStack);
});
player2.getTradeGui().getItems().forEach(itemStack -> {
player2.getTradeGui().getItems(false).forEach(itemStack -> {
if (itemStack == null) return;
player2.getPlayer().getInventory().addItem(itemStack);
});
Expand All @@ -87,13 +92,9 @@ public void complete() {
}
}

AxTradeCompletedEvent event = new AxTradeCompletedEvent(
this.player1, this.player2
);

AxTradeCompleteEvent event = new AxTradeCompleteEvent(this);
Bukkit.getPluginManager().callEvent(event);

if(event.isCancelled()) {
if (event.isCancelled()) {
abort(true);
return;
}
Expand Down Expand Up @@ -143,7 +144,7 @@ public void complete() {
}

List<String> player1Items = new ArrayList<>();
player1.getTradeGui().getItems().forEach(itemStack -> {
player1.getTradeGui().getItems(false).forEach(itemStack -> {
if (itemStack == null) return;
Scheduler.get().runAt(player2.getPlayer().getLocation(), task -> {
ContainerUtils.INSTANCE.addOrDrop(player2.getPlayer().getInventory(), List.of(itemStack), player2.getPlayer().getLocation());
Expand All @@ -158,7 +159,7 @@ public void complete() {
});

List<String> player2Items = new ArrayList<>();
player2.getTradeGui().getItems().forEach(itemStack -> {
player2.getTradeGui().getItems(false).forEach(itemStack -> {
if (itemStack == null) return;
Scheduler.get().runAt(player1.getPlayer().getLocation(), task -> {
ContainerUtils.INSTANCE.addOrDrop(player1.getPlayer().getInventory(), List.of(itemStack), player1.getPlayer().getLocation());
Expand Down
Loading

0 comments on commit ef8d647

Please sign in to comment.