diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..3d85b4a
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,54 @@
+name: Publish Release
+on:
+ push:
+ branches:
+ - main
+ workflow_dispatch:
+ inputs:
+ logLevel:
+ description: 'Log Level'
+ required: false
+ default: 'warning'
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ if: "contains(github.event.commits[0].message, '[build]')"
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v4
+
+ - name: Validate Gradle Wrapper
+ uses: gradle/actions/wrapper-validation@v3
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'temurin'
+ java-version: 17
+ check-latest: true
+
+ - name: Gradle Properties Import.
+ id: properties
+ shell: bash
+ run: cat gradle.properties >> $GITHUB_ENV
+
+ - name: Make gradlew executable
+ run: chmod +x ./gradlew
+
+ - name: Assemble
+ run:
+ ./gradlew assemble --stacktrace
+
+ - name: Publish
+ env:
+ HANGAR_KEY: ${{ secrets.HANGAR_KEY }}
+ MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
+ COMMIT_MESSAGE: ${{ join(github.event.commits.*.message, '
* ') }}
+ run: ./gradlew modrinth publishAllPublicationsToHangar --stacktrace
+
+ - name: Maven Publish
+ env:
+ gradle_username: ${{ secrets.GRADLE_USERNAME }}
+ gradle_password: ${{ secrets.GRADLE_PASSWORD }}
+ run: ./gradlew publish --stacktrace
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index 8221632..722a330 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,40 +1,3 @@
-import org.gradle.kotlin.dsl.support.uppercaseFirstChar
-
plugins {
`root-plugin`
-}
-
-tasks {
- assemble {
- val jarsDir = File("$rootDir/jars")
-
- doFirst {
- delete(jarsDir)
-
- jarsDir.mkdirs()
- }
-
- subprojects.filter { it.name == "paper" || it.name == "fabric" }.forEach { project ->
- dependsOn(":${project.name}:build")
-
- doLast {
- runCatching {
- val file = File("$jarsDir/${project.name.uppercaseFirstChar().lowercase()}")
-
- file.mkdirs()
-
- copy {
- from(project.layout.buildDirectory.file("libs/${rootProject.name}-${project.version}.jar"))
- into(file)
- }
- }.onSuccess {
- // Delete to save space on jenkins.
- delete(project.layout.buildDirectory.get())
- delete(rootProject.layout.buildDirectory.get())
- }.onFailure {
- println("Failed to copy file out of build folder into jars directory: Likely does not exist.")
- }
- }
- }
- }
}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index f2103b1..f1e71ad 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -10,7 +10,7 @@ issues = https://github.com/Crazy-Crew/CrazyAuctions/issues
group = com.badbones69.crazyauctions
description = Auction off items in style.
-version = 1.4
+version = 1.4.1
apiVersion = 1.20
mcVersion = 1.20.4
diff --git a/paper/build.gradle.kts b/paper/build.gradle.kts
index 7eee8f8..6564196 100644
--- a/paper/build.gradle.kts
+++ b/paper/build.gradle.kts
@@ -28,6 +28,13 @@ dependencies {
tasks {
assemble {
dependsOn(reobfJar)
+
+ doLast {
+ copy {
+ from(reobfJar.get())
+ into(rootProject.projectDir.resolve("jars"))
+ }
+ }
}
runServer {
@@ -40,7 +47,7 @@ tasks {
url("https://ci.lucko.me/job/TinyVault/lastSuccessfulBuild/artifact/build/libs/Vault.jar")
- url("https://download.luckperms.net/1532/bukkit/loader/LuckPerms-Bukkit-5.4.119.jar")
+ url("https://download.luckperms.net/1544/bukkit/loader/LuckPerms-Bukkit-5.4.131.jar")
}
minecraftVersion("1.20.4")
diff --git a/paper/libs/Cluster-6.5.jar b/paper/libs/Cluster-6.5.jar
deleted file mode 100644
index 1eeeccd..0000000
Binary files a/paper/libs/Cluster-6.5.jar and /dev/null differ
diff --git a/paper/run/config/paper-global.yml b/paper/run/config/paper-global.yml
index d28ab73..21524ef 100644
--- a/paper/run/config/paper-global.yml
+++ b/paper/run/config/paper-global.yml
@@ -122,6 +122,7 @@ unsupported-settings:
allow-headless-pistons: false
allow-permanent-block-break-exploits: false
allow-piston-duplication: false
+ allow-tripwire-disarming-exploits: false
allow-unsafe-end-portal-teleportation: false
compression-format: ZLIB
perform-username-validation: true
diff --git a/paper/run/config/paper-world-defaults.yml b/paper/run/config/paper-world-defaults.yml
index 25301f2..c8b662a 100644
--- a/paper/run/config/paper-world-defaults.yml
+++ b/paper/run/config/paper-world-defaults.yml
@@ -236,6 +236,7 @@ environment:
min: 20
enabled: true
generate-flat-bedrock: false
+ locate-structures-outside-world-border: false
max-block-ticks: 65536
max-fluid-ticks: 65536
nether-ceiling-void-damage-height: disabled
diff --git a/paper/src/main/java/com/badbones69/crazyauctions/CrazyAuctions.java b/paper/src/main/java/com/badbones69/crazyauctions/CrazyAuctions.java
index 9afe167..e08cdd9 100644
--- a/paper/src/main/java/com/badbones69/crazyauctions/CrazyAuctions.java
+++ b/paper/src/main/java/com/badbones69/crazyauctions/CrazyAuctions.java
@@ -13,8 +13,12 @@ import com.badbones69.crazyauctions.currency.VaultSupport;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.PluginCommand;
import org.bukkit.command.TabCompleter;
+import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
+
+import java.util.Base64;
import java.util.Timer;
import java.util.TimerTask;
@@ -50,6 +54,33 @@ public class CrazyAuctions extends JavaPlugin {
this.crazyManager = new CrazyManager();
this.fileManager.setup();
+
+ FileConfiguration configuration = FileManager.Files.DATA.getFile();
+
+ if (configuration.contains("OutOfTime/Cancelled")) {
+ for (String key : configuration.getConfigurationSection("OutOfTime/Cancelled").getKeys(false)) {
+ final ItemStack itemStack = configuration.getItemStack("OutOfTime/Cancelled." + key + ".Item");
+
+ if (itemStack != null) {
+ configuration.set("OutOfTime/Cancelled." + key + ".Item", Base64.getEncoder().encodeToString(itemStack.serializeAsBytes()));
+
+ FileManager.Files.DATA.saveFile();
+ }
+ }
+ }
+
+ if (configuration.contains("Items")) {
+ for (String key : configuration.getConfigurationSection("Items").getKeys(false)) {
+ final ItemStack itemStack = configuration.getItemStack("Items." + key + ".Item");
+
+ if (itemStack != null) {
+ configuration.set("Items." + key + ".Item", Base64.getEncoder().encodeToString(itemStack.serializeAsBytes()));
+
+ FileManager.Files.DATA.saveFile();
+ }
+ }
+ }
+
this.crazyManager.load();
getServer().getPluginManager().registerEvents(new GuiListener(), this);
diff --git a/paper/src/main/java/com/badbones69/crazyauctions/api/builders/ItemBuilder.java b/paper/src/main/java/com/badbones69/crazyauctions/api/builders/ItemBuilder.java
index d59b5f4..a665f2b 100644
--- a/paper/src/main/java/com/badbones69/crazyauctions/api/builders/ItemBuilder.java
+++ b/paper/src/main/java/com/badbones69/crazyauctions/api/builders/ItemBuilder.java
@@ -5,7 +5,6 @@ import com.badbones69.crazyauctions.Methods;
import com.badbones69.crazyauctions.api.support.PluginSupport;
import com.badbones69.crazyauctions.api.support.SkullCreator;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
-import com.ryderbelserion.cluster.utils.DyeUtils;
import io.th0rgal.oraxen.api.OraxenItems;
import me.clip.placeholderapi.PlaceholderAPI;
import net.minecraft.nbt.TagParser;
@@ -36,6 +35,8 @@ import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.potion.PotionType;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -48,7 +49,7 @@ import java.util.stream.Collectors;
public class ItemBuilder {
@NotNull
- private final CrazyAuctions plugin = CrazyAuctions.get();
+ private static final CrazyAuctions plugin = CrazyAuctions.get();
// Items
private Material material = Material.STONE;
@@ -583,10 +584,10 @@ public class ItemBuilder {
} else {
this.potionType = getPotionType(PotionEffectType.getByName(metaData)).getEffectType();
- this.potionColor = DyeUtils.getColor(metaData);
- this.armorColor = DyeUtils.getColor(metaData);
- this.mapColor = DyeUtils.getColor(metaData);
- this.fireworkColor = DyeUtils.getColor(metaData);
+ this.potionColor = getColor(metaData);
+ this.armorColor = getColor(metaData);
+ this.mapColor = getColor(metaData);
+ this.fireworkColor = getColor(metaData);
}
} else if (type.contains("#")) {
String[] section = type.split("#");
@@ -1183,7 +1184,7 @@ public class ItemBuilder {
try {
for (PatternType pattern : PatternType.values()) {
if (option.equalsIgnoreCase(pattern.name()) || value.equalsIgnoreCase(pattern.getIdentifier())) {
- DyeColor color = DyeUtils.getDyeColor(value);
+ DyeColor color = getDyeColor(value);
if (color != null) itemBuilder.addPattern(new Pattern(color, pattern));
break;
}
@@ -1385,7 +1386,7 @@ public class ItemBuilder {
for (PatternType pattern : PatternType.values()) {
if (split[0].equalsIgnoreCase(pattern.name()) || split[0].equalsIgnoreCase(pattern.getIdentifier())) {
- DyeColor color = DyeUtils.getDyeColor(split[1]);
+ DyeColor color = getDyeColor(split[1]);
if (color != null) addPattern(new Pattern(color, pattern));
@@ -1394,4 +1395,67 @@ public class ItemBuilder {
}
} catch (Exception ignored) {}
}
+
+ public static @Nullable DyeColor getDyeColor(@NotNull final String value) {
+ if (value.isEmpty()) return null;
+
+ Color color = getColor(value);
+
+ if (color == null) {
+ plugin.getLogger().severe(value + " is not a valid color.");
+
+ return null;
+ }
+
+ return DyeColor.getByColor(color);
+ }
+
+ private static final Map colors = createMap();
+
+ private static Map createMap() {
+ Map map = new HashMap<>();
+ map.put("AQUA", Color.AQUA);
+ map.put("BLACK", Color.BLACK);
+ map.put("BLUE", Color.BLUE);
+ map.put("FUCHSIA", Color.FUCHSIA);
+ map.put("GRAY", Color.GRAY);
+ map.put("GREEN", Color.GREEN);
+ map.put("LIME", Color.LIME);
+ map.put("MAROON", Color.MAROON);
+ map.put("NAVY", Color.NAVY);
+ map.put("OLIVE", Color.OLIVE);
+ map.put("ORANGE", Color.ORANGE);
+ map.put("PURPLE", Color.PURPLE);
+ map.put("RED", Color.RED);
+ map.put("SILVER", Color.SILVER);
+ map.put("TEAL", Color.TEAL);
+ map.put("WHITE", Color.WHITE);
+ map.put("YELLOW", Color.YELLOW);
+ return map;
+ }
+
+ public static Color getColor(String color) {
+ if (color != null && !color.isBlank()) {
+ Color mappedColor = (Color)colors.get(color.toUpperCase());
+ if (mappedColor != null) {
+ return mappedColor;
+ } else {
+ try {
+ String[] rgb = color.split(",");
+ if (rgb.length != 3) {
+ return null;
+ } else {
+ int red = Integer.parseInt(rgb[0]);
+ int green = Integer.parseInt(rgb[1]);
+ int blue = Integer.parseInt(rgb[2]);
+ return Color.fromRGB(red, green, blue);
+ }
+ } catch (ArrayIndexOutOfBoundsException | NumberFormatException var6) {
+ return null;
+ }
+ }
+ } else {
+ return null;
+ }
+ }
}
\ No newline at end of file
diff --git a/paper/src/main/java/com/badbones69/crazyauctions/commands/AuctionCommand.java b/paper/src/main/java/com/badbones69/crazyauctions/commands/AuctionCommand.java
index 0e92135..673c6bb 100644
--- a/paper/src/main/java/com/badbones69/crazyauctions/commands/AuctionCommand.java
+++ b/paper/src/main/java/com/badbones69/crazyauctions/commands/AuctionCommand.java
@@ -22,6 +22,7 @@ import org.bukkit.permissions.PermissionAttachmentInfo;
import org.jetbrains.annotations.NotNull;
import org.yaml.snakeyaml.error.YAMLException;
import java.util.ArrayList;
+import java.util.Base64;
import java.util.HashMap;
import java.util.Random;
import java.util.logging.Level;
@@ -131,7 +132,7 @@ public class AuctionCommand implements CommandExecutor {
ItemStack stack = item.clone();
stack.setAmount(amount);
- data.set("Items." + num + ".Item", stack);
+ data.set("Items." + num + ".Item", Base64.getEncoder().encodeToString(stack.serializeAsBytes()));
}
Files.DATA.saveFile();
@@ -406,7 +407,7 @@ public class AuctionCommand implements CommandExecutor {
ItemStack stack = item.clone();
stack.setAmount(amount);
- data.set("Items." + num + ".Item", stack);
+ data.set("Items." + num + ".Item", Base64.getEncoder().encodeToString(stack.serializeAsBytes()));
Files.DATA.saveFile();
diff --git a/paper/src/main/java/com/badbones69/crazyauctions/controllers/GuiListener.java b/paper/src/main/java/com/badbones69/crazyauctions/controllers/GuiListener.java
index 3dc93d6..0522757 100644
--- a/paper/src/main/java/com/badbones69/crazyauctions/controllers/GuiListener.java
+++ b/paper/src/main/java/com/badbones69/crazyauctions/controllers/GuiListener.java
@@ -27,6 +27,7 @@ import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
+import java.util.Base64;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
@@ -65,7 +66,10 @@ public class GuiListener implements Listener {
if (data.contains("Items")) {
for (String i : data.getConfigurationSection("Items").getKeys(false)) {
List lore = new ArrayList<>();
- if (data.getItemStack("Items." + i + ".Item") != null && (cat.getItems().contains(data.getItemStack("Items." + i + ".Item").getType()) || cat == Category.NONE)) {
+
+ ItemBuilder itemBuilder = ItemBuilder.convertItemStack(ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("Items." + i + ".Item"))));
+
+ if (itemBuilder != null && data.contains("Items." + i + ".Item") && (cat.getItems().contains(itemBuilder.getItemStack().getType()) || cat == Category.NONE)) {
if (data.getBoolean("Items." + i + ".Biddable")) {
if (sell == ShopType.BID) {
String seller = data.getString("Items." + i + ".Seller");
@@ -74,8 +78,6 @@ public class GuiListener implements Listener {
lore.add(l.replace("%TopBid%", Methods.getPrice(i, false)).replace("%topbid%", Methods.getPrice(i, false)).replace("%Seller%", seller).replace("%seller%", seller).replace("%TopBidder%", topbidder).replace("%topbidder%", topbidder).replace("%Time%", Methods.convertToTime(data.getLong("Items." + i + ".Time-Till-Expire"))).replace("%time%", Methods.convertToTime(data.getLong("Items." + i + ".Time-Till-Expire"))));
}
- ItemBuilder itemBuilder = ItemBuilder.convertItemStack(data.getItemStack("Items." + i + ".Item"));
-
itemBuilder.setLore(lore);
items.add(itemBuilder.build());
@@ -88,11 +90,7 @@ public class GuiListener implements Listener {
lore.add(l.replace("%Price%", String.format(Locale.ENGLISH, "%,d", Long.parseLong(Methods.getPrice(i, false)))).replace("%price%", String.format(Locale.ENGLISH, "%,d", Long.parseLong(Methods.getPrice(i, false)))).replace("%Seller%", data.getString("Items." + i + ".Seller")).replace("%seller%", data.getString("Items." + i + ".Seller")).replace("%Time%", Methods.convertToTime(data.getLong("Items." + i + ".Time-Till-Expire"))).replace("%time%", Methods.convertToTime(data.getLong("Items." + i + ".Time-Till-Expire"))));
}
- ItemBuilder itemBuilder = ItemBuilder.convertItemStack(data.getItemStack("Items." + i + ".Item"));
-
- if (itemBuilder.getUpdatedLore().isEmpty()) {
- lore.forEach(itemBuilder::addLore);
- }
+ itemBuilder.setLore(lore);
items.add(itemBuilder.build());
@@ -256,9 +254,9 @@ public class GuiListener implements Listener {
lore.add(l.replace("%Price%", Methods.getPrice(i, false)).replace("%price%", Methods.getPrice(i, false)).replace("%Time%", Methods.convertToTime(data.getLong("Items." + i + ".Time-Till-Expire"))).replace("%time%", Methods.convertToTime(data.getLong("Items." + i + ".Time-Till-Expire"))));
}
- ItemBuilder itemBuilder = ItemBuilder.convertItemStack(data.getItemStack("Items." + i + ".Item"));
+ ItemBuilder itemBuilder = ItemBuilder.convertItemStack(ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("Items." + i + ".Item"))));
- lore.forEach(itemBuilder::addLore);
+ itemBuilder.setLore(lore);
items.add(itemBuilder.build());
@@ -293,9 +291,9 @@ public class GuiListener implements Listener {
lore.add(l.replace("%Price%", Methods.getPrice(i, true)).replace("%price%", Methods.getPrice(i, true)).replace("%Time%", Methods.convertToTime(data.getLong("OutOfTime/Cancelled." + i + ".Full-Time"))).replace("%time%", Methods.convertToTime(data.getLong("OutOfTime/Cancelled." + i + ".Full-Time"))));
}
- ItemBuilder itemBuilder = ItemBuilder.convertItemStack(data.getItemStack("OutOfTime/Cancelled." + i + ".Item"));
+ ItemBuilder itemBuilder = ItemBuilder.convertItemStack(ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("OutOfTime/Cancelled." + i + ".Item"))));
- lore.forEach(itemBuilder::addLore);
+ itemBuilder.setLore(lore);
items.add(itemBuilder.build());
@@ -393,7 +391,7 @@ public class GuiListener implements Listener {
}
}
- ItemStack item = data.getItemStack("Items." + ID + ".Item");
+ ItemStack item = ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("Items." + ID + ".Item")));
List lore = new ArrayList<>();
for (String l : config.getStringList("Settings.GUISettings.SellingItemLore")) {
lore.add(l.replace("%Price%", Methods.getPrice(ID, false)).replace("%price%", Methods.getPrice(ID, false)).replace("%Seller%", data.getString("Items." + ID + ".Seller")).replace("%seller%", data.getString("Items." + ID + ".Seller")).replace("%Time%", Methods.convertToTime(data.getLong("Items." + l + ".Time-Till-Expire"))).replace("%time%", Methods.convertToTime(data.getLong("Items." + l + ".Time-Till-Expire"))));
@@ -401,7 +399,7 @@ public class GuiListener implements Listener {
ItemBuilder itemBuilder = ItemBuilder.convertItemStack(item);
- lore.forEach(itemBuilder::addLore);
+ itemBuilder.setLore(lore);
inv.setItem(4, itemBuilder.build());
@@ -470,9 +468,9 @@ public class GuiListener implements Listener {
}
}
- ItemBuilder itemBuilder = ItemBuilder.convertItemStack(data.getItemStack("Items." + i + ".Item"));
+ ItemBuilder itemBuilder = ItemBuilder.convertItemStack(ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("Items." + ID + ".Item"))));
- lore.forEach(itemBuilder::addLore);
+ itemBuilder.setLore(lore);
items.add(itemBuilder.build());
@@ -545,7 +543,7 @@ public class GuiListener implements Listener {
FileConfiguration data = Files.DATA.getFile();
String seller = data.getString("Items." + ID + ".Seller");
String topbidder = data.getString("Items." + ID + ".TopBidder");
- ItemStack item = data.getItemStack("Items." + ID + ".Item");
+ ItemStack item = ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("Items." + ID + ".Item")));
List lore = new ArrayList<>();
for (String l : config.getStringList("Settings.GUISettings.Bidding")) {
@@ -554,7 +552,7 @@ public class GuiListener implements Listener {
ItemBuilder itemBuilder = ItemBuilder.convertItemStack(item);
- lore.forEach(itemBuilder::addLore);
+ itemBuilder.setLore(lore);
return itemBuilder.build();
}
@@ -661,7 +659,7 @@ public class GuiListener implements Listener {
return;
}
- Bukkit.getPluginManager().callEvent(new AuctionNewBidEvent(player, data.getItemStack("Items." + ID + ".Item"), bid));
+ Bukkit.getPluginManager().callEvent(new AuctionNewBidEvent(player, ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("Items." + ID + ".Item"))), bid));
data.set("Items." + ID + ".Price", bid);
data.set("Items." + ID + ".TopBidder", player.getName());
HashMap placeholders = new HashMap<>();
@@ -810,12 +808,12 @@ public class GuiListener implements Listener {
sellerPlayer.sendMessage(Messages.ADMIN_FORCE_CANCELLED_TO_PLAYER.getMessage());
}
- AuctionCancelledEvent event = new AuctionCancelledEvent((sellerPlayer != null ? sellerPlayer : Bukkit.getOfflinePlayer(seller)), data.getItemStack("Items." + i + ".Item"), Reaons.ADMIN_FORCE_CANCEL);
+ AuctionCancelledEvent event = new AuctionCancelledEvent((sellerPlayer != null ? sellerPlayer : Bukkit.getOfflinePlayer(seller)), ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("Items." + ID + ".Item"))), Reaons.ADMIN_FORCE_CANCEL);
Bukkit.getPluginManager().callEvent(event);
data.set("OutOfTime/Cancelled." + num + ".Seller", data.getString("Items." + i + ".Seller"));
data.set("OutOfTime/Cancelled." + num + ".Full-Time", data.getLong("Items." + i + ".Full-Time"));
data.set("OutOfTime/Cancelled." + num + ".StoreID", data.getInt("Items." + i + ".StoreID"));
- data.set("OutOfTime/Cancelled." + num + ".Item", data.getItemStack("Items." + i + ".Item"));
+ data.set("OutOfTime/Cancelled." + num + ".Item", data.getString("Items." + ID + ".Item"));
data.set("Items." + i, null);
Files.DATA.saveFile();
player.sendMessage(Messages.ADMIN_FORCE_CANCELLED.getMessage());
@@ -944,7 +942,8 @@ public class GuiListener implements Listener {
return;
}
- ItemStack i = data.getItemStack("Items." + ID + ".Item");
+ ItemStack i = ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("Items." + ID + ".Item")));
+
plugin.getServer().getPluginManager().callEvent(new AuctionBuyEvent(player, i, cost));
plugin.getSupport().removeMoney(player, cost);
plugin.getSupport().addMoney(Methods.getOfflinePlayer(seller), cost);
@@ -1006,14 +1005,14 @@ public class GuiListener implements Listener {
int ID = data.getInt("Items." + i + ".StoreID");
if (id == ID) {
player.sendMessage(Messages.CANCELLED_ITEM.getMessage());
- AuctionCancelledEvent event = new AuctionCancelledEvent(player, data.getItemStack("Items." + i + ".Item"), Reaons.PLAYER_FORCE_CANCEL);
+ AuctionCancelledEvent event = new AuctionCancelledEvent(player, ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("Items." + i + ".Item"))), Reaons.PLAYER_FORCE_CANCEL);
Bukkit.getPluginManager().callEvent(event);
int num = 1;
for (; data.contains("OutOfTime/Cancelled." + num); num++) ;
data.set("OutOfTime/Cancelled." + num + ".Seller", data.getString("Items." + i + ".Seller"));
data.set("OutOfTime/Cancelled." + num + ".Full-Time", data.getLong("Items." + i + ".Full-Time"));
data.set("OutOfTime/Cancelled." + num + ".StoreID", data.getInt("Items." + i + ".StoreID"));
- data.set("OutOfTime/Cancelled." + num + ".Item", data.getItemStack("Items." + i + ".Item"));
+ data.set("OutOfTime/Cancelled." + num + ".Item", data.getString("Items." + i + ".Item"));
data.set("Items." + i, null);
Files.DATA.saveFile();
playClick(player);
@@ -1070,7 +1069,7 @@ public class GuiListener implements Listener {
player.sendMessage(Messages.INVENTORY_FULL.getMessage());
break;
} else {
- player.getInventory().addItem(data.getItemStack("OutOfTime/Cancelled." + i + ".Item"));
+ player.getInventory().addItem(ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("OutOfTime/Cancelled." + i + ".Item"))));
data.set("OutOfTime/Cancelled." + i, null);
}
}
@@ -1103,8 +1102,7 @@ public class GuiListener implements Listener {
if (id == ID) {
if (!Methods.isInvFull(player)) {
player.sendMessage(Messages.GOT_ITEM_BACK.getMessage());
- ItemStack IT = data.getItemStack("OutOfTime/Cancelled." + i + ".Item");
- player.getInventory().addItem(IT);
+ player.getInventory().addItem(ItemStack.deserializeBytes(Base64.getDecoder().decode(data.getString("OutOfTime/Cancelled." + i + ".Item"))));
data.set("OutOfTime/Cancelled." + i, null);
Files.DATA.saveFile();
playClick(player);