Compare commits

...

5 Commits

21 changed files with 424 additions and 399 deletions

32
pom.xml
View File

@ -1,9 +1,9 @@
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.songoda</groupId>
<groupId>com.craftaro</groupId>
<artifactId>UltimateRepairing</artifactId>
<version>1.5.9</version>
<version>2.0.0</version>
<build>
<defaultGoal>clean install</defaultGoal>
@ -63,7 +63,7 @@
<artifactSet>
<includes>
<include>com.songoda:SongodaCore</include>
<include>com.craftaro:CraftaroCore</include>
</includes>
</artifactSet>
@ -76,11 +76,29 @@
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
<filter>
<artifact>com.craftaro:CraftaroCore</artifact>
<excludeDefaults>false</excludeDefaults>
<includes>
<include>**/nms/v*/**</include>
</includes>
<excludes>
<exclude>**/third_party/org/apache/**</exclude>
<exclude>**/third_party/net/kyori/**</exclude>
<exclude>**/third_party/com/zaxxer/**</exclude>
<exclude>**/third_party/org/jooq/**</exclude>
<exclude>**/third_party/org/mariadb/**</exclude>
<exclude>**/third_party/com/h2database/**</exclude>
<exclude>**/third_party/org/h2/**</exclude>
<exclude>**/third_party/com/cryptomorin/**</exclude>
<exclude>**/third_party/org/reactivestreams/**</exclude>
</excludes>
</filter>
</filters>
<relocations>
<relocation>
<pattern>com.songoda.core</pattern>
<pattern>com.craftaro.core</pattern>
<shadedPattern>${project.groupId}.ultimaterepairing.core</shadedPattern>
</relocation>
</relocations>
@ -111,9 +129,9 @@
</dependency>
<dependency>
<groupId>com.songoda</groupId>
<artifactId>SongodaCore</artifactId>
<version>2.6.19</version>
<groupId>com.craftaro</groupId>
<artifactId>CraftaroCore</artifactId>
<version>3.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@ -1,32 +1,35 @@
package com.songoda.ultimaterepairing;
package com.craftaro.ultimaterepairing;
import com.songoda.core.SongodaCore;
import com.songoda.core.SongodaPlugin;
import com.songoda.core.commands.CommandManager;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.configuration.Config;
import com.songoda.core.gui.GuiManager;
import com.songoda.core.hooks.EconomyManager;
import com.songoda.core.hooks.HologramManager;
import com.songoda.ultimaterepairing.anvil.AnvilManager;
import com.songoda.ultimaterepairing.anvil.UAnvil;
import com.songoda.ultimaterepairing.commands.CommandReload;
import com.songoda.ultimaterepairing.commands.CommandSettings;
import com.songoda.ultimaterepairing.commands.CommandURAnvil;
import com.songoda.ultimaterepairing.handlers.ParticleTask;
import com.songoda.ultimaterepairing.handlers.RepairHandler;
import com.songoda.ultimaterepairing.listeners.BlockListeners;
import com.songoda.ultimaterepairing.listeners.InteractListeners;
import com.songoda.ultimaterepairing.listeners.InventoryListeners;
import com.songoda.ultimaterepairing.listeners.PlayerListeners;
import com.songoda.ultimaterepairing.settings.Settings;
import com.songoda.ultimaterepairing.utils.Methods;
import com.craftaro.core.SongodaCore;
import com.craftaro.core.SongodaPlugin;
import com.craftaro.core.commands.CommandManager;
import com.craftaro.core.configuration.Config;
import com.craftaro.core.dependency.Dependency;
import com.craftaro.core.gui.GuiManager;
import com.craftaro.core.hooks.EconomyManager;
import com.craftaro.core.hooks.HologramManager;
import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial;
import com.craftaro.ultimaterepairing.anvil.AnvilManager;
import com.craftaro.ultimaterepairing.anvil.UAnvil;
import com.craftaro.ultimaterepairing.commands.CommandReload;
import com.craftaro.ultimaterepairing.commands.CommandSettings;
import com.craftaro.ultimaterepairing.commands.CommandURAnvil;
import com.craftaro.ultimaterepairing.handlers.ParticleTask;
import com.craftaro.ultimaterepairing.handlers.RepairHandler;
import com.craftaro.ultimaterepairing.listeners.BlockListeners;
import com.craftaro.ultimaterepairing.listeners.InteractListeners;
import com.craftaro.ultimaterepairing.listeners.InventoryListeners;
import com.craftaro.ultimaterepairing.listeners.PlayerListeners;
import com.craftaro.ultimaterepairing.settings.Settings;
import com.craftaro.ultimaterepairing.utils.Methods;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.plugin.PluginManager;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class UltimateRepairing extends SongodaPlugin {
private static UltimateRepairing INSTANCE;
@ -43,6 +46,11 @@ public class UltimateRepairing extends SongodaPlugin {
return INSTANCE;
}
@Override
protected Set<Dependency> getDependencies() {
return new HashSet<>();
}
@Override
public void onPluginLoad() {
INSTANCE = this;
@ -51,7 +59,7 @@ public class UltimateRepairing extends SongodaPlugin {
@Override
public void onPluginEnable() {
// Register in Songoda Core
SongodaCore.registerPlugin(this, 20, CompatibleMaterial.ANVIL);
SongodaCore.registerPlugin(this, 20, XMaterial.ANVIL);
Settings.setupConfig();

View File

@ -1,4 +1,4 @@
package com.songoda.ultimaterepairing.anvil;
package com.craftaro.ultimaterepairing.anvil;
import org.bukkit.Location;
import org.bukkit.block.Block;

View File

@ -1,6 +1,6 @@
package com.songoda.ultimaterepairing.anvil;
package com.craftaro.ultimaterepairing.anvil;
import com.songoda.ultimaterepairing.repair.RepairType;
import com.craftaro.ultimaterepairing.repair.RepairType;
import org.bukkit.Location;
import org.bukkit.entity.Item;
import org.bukkit.inventory.ItemStack;

View File

@ -1,8 +1,8 @@
package com.songoda.ultimaterepairing.anvil;
package com.craftaro.ultimaterepairing.anvil;
import com.songoda.core.hooks.HologramManager;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.songoda.ultimaterepairing.settings.Settings;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.core.hooks.HologramManager;
import com.craftaro.ultimaterepairing.settings.Settings;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;

View File

@ -1,7 +1,7 @@
package com.songoda.ultimaterepairing.commands;
package com.craftaro.ultimaterepairing.commands;
import com.songoda.core.commands.AbstractCommand;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.core.commands.AbstractCommand;
import org.bukkit.command.CommandSender;
import java.util.List;

View File

@ -1,9 +1,9 @@
package com.songoda.ultimaterepairing.commands;
package com.craftaro.ultimaterepairing.commands;
import com.songoda.core.commands.AbstractCommand;
import com.songoda.core.configuration.editor.PluginConfigGui;
import com.songoda.core.gui.GuiManager;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.core.commands.AbstractCommand;
import com.craftaro.core.configuration.editor.PluginConfigGui;
import com.craftaro.core.gui.GuiManager;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

View File

@ -1,7 +1,7 @@
package com.songoda.ultimaterepairing.commands;
package com.craftaro.ultimaterepairing.commands;
import com.songoda.core.commands.AbstractCommand;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.core.commands.AbstractCommand;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

View File

@ -1,58 +1,58 @@
package com.songoda.ultimaterepairing.gui;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.gui.Gui;
import com.songoda.core.gui.GuiUtils;
import com.songoda.ultimaterepairing.anvil.UAnvil;
import com.songoda.ultimaterepairing.settings.Settings;
import org.bukkit.ChatColor;
import org.bukkit.inventory.ItemStack;
public class AnvilSettingsGui extends Gui {
private final UAnvil anvil;
public AnvilSettingsGui(UAnvil anvil) {
this.anvil = anvil;
init();
}
protected void init() {
setRows(3);
setTitle("Anvil Settings");
ItemStack glass1 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_1.getMaterial());
ItemStack glass2 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_2.getMaterial());
ItemStack glass3 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_3.getMaterial());
setDefaultItem(glass1);
mirrorFill(0, 0, true, true, glass2);
mirrorFill(0, 1, true, true, glass2);
mirrorFill(0, 2, true, true, glass3);
mirrorFill(1, 0, false, true, glass2);
mirrorFill(1, 1, false, true, glass3);
setButton(1, 2, GuiUtils.createButtonItem(CompatibleMaterial.NAME_TAG, ChatColor.BLUE.toString() + ChatColor.BOLD + "Toggle Holograms",
ChatColor.GRAY + "Currently: " + (anvil.isHologram() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + "."),
(event) -> {
anvil.setHologram(!anvil.isHologram());
updateItemLore(event.slot, ChatColor.GRAY + "Currently: " + (anvil.isHologram() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + ".");
});
setButton(1, 4, GuiUtils.createButtonItem(CompatibleMaterial.BEACON, ChatColor.DARK_PURPLE.toString() + ChatColor.BOLD + "Toggle Infinity",
ChatColor.GRAY + "Currently: " + (anvil.isInfinity() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + "."),
(event) -> {
anvil.setInfinity(!anvil.isInfinity());
updateItemLore(event.slot, ChatColor.GRAY + "Currently: " + (anvil.isInfinity() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + ".");
});
setButton(1, 6, GuiUtils.createButtonItem(CompatibleMaterial.FIREWORK_ROCKET, ChatColor.BLUE.toString() + ChatColor.BOLD + "Toggle Particles",
ChatColor.GRAY + "Currently: " + (anvil.isParticles() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + "."),
(event) -> {
anvil.setParticles(!anvil.isParticles());
updateItemLore(event.slot, ChatColor.GRAY + "Currently: " + (anvil.isParticles() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + ".");
});
}
}
package com.craftaro.ultimaterepairing.gui;
import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial;
import com.craftaro.ultimaterepairing.anvil.UAnvil;
import com.craftaro.core.gui.Gui;
import com.craftaro.core.gui.GuiUtils;
import com.craftaro.ultimaterepairing.settings.Settings;
import org.bukkit.ChatColor;
import org.bukkit.inventory.ItemStack;
public class AnvilSettingsGui extends Gui {
private final UAnvil anvil;
public AnvilSettingsGui(UAnvil anvil) {
this.anvil = anvil;
init();
}
protected void init() {
setRows(3);
setTitle("Anvil Settings");
ItemStack glass1 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_1.getMaterial());
ItemStack glass2 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_2.getMaterial());
ItemStack glass3 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_3.getMaterial());
setDefaultItem(glass1);
mirrorFill(0, 0, true, true, glass2);
mirrorFill(0, 1, true, true, glass2);
mirrorFill(0, 2, true, true, glass3);
mirrorFill(1, 0, false, true, glass2);
mirrorFill(1, 1, false, true, glass3);
setButton(1, 2, GuiUtils.createButtonItem(XMaterial.NAME_TAG, ChatColor.BLUE.toString() + ChatColor.BOLD + "Toggle Holograms",
ChatColor.GRAY + "Currently: " + (anvil.isHologram() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + "."),
(event) -> {
anvil.setHologram(!anvil.isHologram());
updateItemLore(event.slot, ChatColor.GRAY + "Currently: " + (anvil.isHologram() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + ".");
});
setButton(1, 4, GuiUtils.createButtonItem(XMaterial.BEACON, ChatColor.DARK_PURPLE.toString() + ChatColor.BOLD + "Toggle Infinity",
ChatColor.GRAY + "Currently: " + (anvil.isInfinity() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + "."),
(event) -> {
anvil.setInfinity(!anvil.isInfinity());
updateItemLore(event.slot, ChatColor.GRAY + "Currently: " + (anvil.isInfinity() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + ".");
});
setButton(1, 6, GuiUtils.createButtonItem(XMaterial.FIREWORK_ROCKET, ChatColor.BLUE.toString() + ChatColor.BOLD + "Toggle Particles",
ChatColor.GRAY + "Currently: " + (anvil.isParticles() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + "."),
(event) -> {
anvil.setParticles(!anvil.isParticles());
updateItemLore(event.slot, ChatColor.GRAY + "Currently: " + (anvil.isParticles() ? ChatColor.GREEN + "Enabled" : ChatColor.RED + "Disabled") + ChatColor.GRAY + ".");
});
}
}

View File

@ -1,118 +1,118 @@
package com.songoda.ultimaterepairing.gui;
import com.songoda.core.gui.Gui;
import com.songoda.core.gui.GuiUtils;
import com.songoda.core.utils.ItemUtils;
import com.songoda.core.utils.TextUtils;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.songoda.ultimaterepairing.repair.RepairType;
import com.songoda.ultimaterepairing.settings.Settings;
import com.songoda.ultimaterepairing.utils.Methods;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.Arrays;
public class RepairGui extends Gui {
private final Location anvil;
private final Player player;
private static final UltimateRepairing plugin = UltimateRepairing.getInstance();
public static void newGui(Player player, Location anvil) {
RepairType type = RepairType.EXPERIENCE;
if (!type.hasPermission(player))
type = type.getNext(player);
if (type == null) {
plugin.getLocale().getMessage("event.general.nopermission").sendPrefixedMessage(player);
return;
}
plugin.getGuiManager().showGUI(player, new RepairGui(player, anvil, null, type));
}
private RepairGui(Player player, Location anvil, Gui gui, RepairType type) {
super(gui);
this.anvil = anvil;
this.player = player;
setRows(6);
setTitle(plugin.getLocale().getMessage("interface.repair.title").getMessage());
init(type);
}
protected void init(RepairType type) {
if (inventory != null)
inventory.clear();
setActionForRange(0, 53, null);
ItemStack glass1 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_1.getMaterial());
ItemStack glass2 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_2.getMaterial());
ItemStack glass3 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_3.getMaterial());
setDefaultItem(glass1);
mirrorFill(0, 0, true, true, glass2);
mirrorFill(0, 1, true, true, glass2);
mirrorFill(0, 2, true, true, glass3);
if (Arrays.stream(RepairType.values()).filter(p -> p.hasPermission(player)).count() > 1)
setButton(4, GuiUtils.createButtonItem(type.getMaterial(),
type.getTitle(),
plugin.getLocale().getMessage("interface.repair.swap").getMessage()), (event) ->
init(type.getNext(player)));
int i = 9;
for (int playerslot = 0; playerslot < player.getInventory().getContents().length; playerslot++) {
ItemStack item = player.getInventory().getContents()[playerslot];
if (item == null || item.getDurability() <= 0 || item.getMaxStackSize() != 1) continue;
ItemStack toRepair = item.clone();
short durability = item.getDurability();
final String itemName = TextUtils.formatText(ItemUtils.getItemName(item).replace("_", " "), true);
if (type == RepairType.ECONOMY) {
item = GuiUtils.createButtonItem(item,
plugin.getLocale().getMessage("interface.repair.item")
.processPlaceholder("ITEM", itemName).getMessage(),
plugin.getLocale().getMessage("interface.repair.ecolore").getMessage());
} else if (type == RepairType.ITEM) {
item = GuiUtils.createButtonItem(item,
plugin.getLocale().getMessage("interface.repair.item")
.processPlaceholder("ITEM", itemName).getMessage(),
plugin.getLocale().getMessage("interface.repair.itemlore")
.processPlaceholder("item", itemName).getMessage());
} else if (type == RepairType.EXPERIENCE) {
item = GuiUtils.createButtonItem(item,
plugin.getLocale().getMessage("interface.repair.item")
.processPlaceholder("ITEM", itemName).getMessage(),
plugin.getLocale().getMessage("interface.repair.xplore").getMessage());
}
item.setDurability(durability);
int finalplayerslot = playerslot;
setButton(i, item, (event) -> {
exit();
if (!player.getInventory().contains(toRepair)) {
plugin.getLocale().getMessage("event.repair.notfound").sendPrefixedMessage(player);
return;
}
player.getInventory().removeItem(toRepair);
plugin.getRepairHandler().preRepair(toRepair, finalplayerslot, player, type, anvil);
});
i++;
}
if (Settings.RAINBOW.getBoolean()) {
for (int cell = 0; cell < rows * 9; ++cell) {
if (getItem(cell) == null)
setItem(cell, GuiUtils.getBorderItem(Methods.getRainbowGlass()));
}
}
}
}
package com.craftaro.ultimaterepairing.gui;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.ultimaterepairing.utils.Methods;
import com.craftaro.core.gui.Gui;
import com.craftaro.core.gui.GuiUtils;
import com.craftaro.core.utils.ItemUtils;
import com.craftaro.core.utils.TextUtils;
import com.craftaro.ultimaterepairing.repair.RepairType;
import com.craftaro.ultimaterepairing.settings.Settings;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.Arrays;
public class RepairGui extends Gui {
private final Location anvil;
private final Player player;
private static final UltimateRepairing plugin = UltimateRepairing.getInstance();
public static void newGui(Player player, Location anvil) {
RepairType type = RepairType.EXPERIENCE;
if (!type.hasPermission(player))
type = type.getNext(player);
if (type == null) {
plugin.getLocale().getMessage("event.general.nopermission").sendPrefixedMessage(player);
return;
}
plugin.getGuiManager().showGUI(player, new RepairGui(player, anvil, null, type));
}
private RepairGui(Player player, Location anvil, Gui gui, RepairType type) {
super(gui);
this.anvil = anvil;
this.player = player;
setRows(6);
setTitle(plugin.getLocale().getMessage("interface.repair.title").getMessage());
init(type);
}
protected void init(RepairType type) {
if (inventory != null)
inventory.clear();
setActionForRange(0, 53, null);
ItemStack glass1 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_1.getMaterial());
ItemStack glass2 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_2.getMaterial());
ItemStack glass3 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_3.getMaterial());
setDefaultItem(glass1);
mirrorFill(0, 0, true, true, glass2);
mirrorFill(0, 1, true, true, glass2);
mirrorFill(0, 2, true, true, glass3);
if (Arrays.stream(RepairType.values()).filter(p -> p.hasPermission(player)).count() > 1)
setButton(4, GuiUtils.createButtonItem(type.getMaterial(),
type.getTitle(),
plugin.getLocale().getMessage("interface.repair.swap").getMessage()), (event) ->
init(type.getNext(player)));
int i = 9;
for (int playerslot = 0; playerslot < player.getInventory().getContents().length; playerslot++) {
ItemStack item = player.getInventory().getContents()[playerslot];
if (item == null || item.getDurability() <= 0 || item.getMaxStackSize() != 1) continue;
ItemStack toRepair = item.clone();
short durability = item.getDurability();
final String itemName = TextUtils.formatText(ItemUtils.getItemName(item).replace("_", " "), true);
if (type == RepairType.ECONOMY) {
item = GuiUtils.createButtonItem(item,
plugin.getLocale().getMessage("interface.repair.item")
.processPlaceholder("ITEM", itemName).getMessage(),
plugin.getLocale().getMessage("interface.repair.ecolore").getMessage());
} else if (type == RepairType.ITEM) {
item = GuiUtils.createButtonItem(item,
plugin.getLocale().getMessage("interface.repair.item")
.processPlaceholder("ITEM", itemName).getMessage(),
plugin.getLocale().getMessage("interface.repair.itemlore")
.processPlaceholder("item", itemName).getMessage());
} else if (type == RepairType.EXPERIENCE) {
item = GuiUtils.createButtonItem(item,
plugin.getLocale().getMessage("interface.repair.item")
.processPlaceholder("ITEM", itemName).getMessage(),
plugin.getLocale().getMessage("interface.repair.xplore").getMessage());
}
item.setDurability(durability);
int finalplayerslot = playerslot;
setButton(i, item, (event) -> {
exit();
if (!player.getInventory().contains(toRepair)) {
plugin.getLocale().getMessage("event.repair.notfound").sendPrefixedMessage(player);
return;
}
player.getInventory().removeItem(toRepair);
plugin.getRepairHandler().preRepair(toRepair, finalplayerslot, player, type, anvil);
});
i++;
}
if (Settings.RAINBOW.getBoolean()) {
for (int cell = 0; cell < rows * 9; ++cell) {
if (getItem(cell) == null)
setItem(cell, GuiUtils.getBorderItem(Methods.getRainbowGlass()));
}
}
}
}

View File

@ -1,92 +1,92 @@
package com.songoda.ultimaterepairing.gui;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.gui.Gui;
import com.songoda.core.gui.GuiUtils;
import com.songoda.core.utils.TextUtils;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.songoda.ultimaterepairing.anvil.PlayerAnvilData;
import com.songoda.ultimaterepairing.repair.RepairType;
import com.songoda.ultimaterepairing.settings.Settings;
import com.songoda.ultimaterepairing.utils.Methods;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class StartConfirmGui extends Gui {
private final Player player;
private final UltimateRepairing instance = UltimateRepairing.getInstance();
private final ItemStack item;
private final RepairType type;
boolean isYes = false;
public StartConfirmGui(RepairType type, Player player, ItemStack item) {
this(type, player, item, null);
}
public StartConfirmGui(RepairType type, Player player, ItemStack item, Gui gui) {
super(gui);
this.player = player;
this.item = item;
this.type = type;
init();
}
protected void init() {
setRows(3);
String cost = "0";
PlayerAnvilData playerData = instance.getRepairHandler().getDataFor(player);
if (type == RepairType.EXPERIENCE) {
cost = playerData.getPrice() + " XP";
} else if (type == RepairType.ECONOMY) {
cost = String.valueOf(playerData.getPrice());
} else if (type == RepairType.ITEM) {
cost = playerData.getPrice() + " " + TextUtils.formatText(Methods.getType(item).name(), true);
}
setTitle(instance.getLocale().getMessage("interface.yesno.title" + (type == RepairType.ECONOMY ? "Eco" : ""))
.processPlaceholder("cost", cost).getMessage());
ItemStack glass1 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_1.getMaterial());
ItemStack glass2 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_2.getMaterial());
ItemStack glass3 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_3.getMaterial());
setDefaultItem(glass1);
mirrorFill(0, 0, true, true, glass2);
mirrorFill(0, 1, true, true, glass2);
mirrorFill(0, 2, true, true, glass3);
mirrorFill(1, 0, false, true, glass2);
mirrorFill(1, 1, false, true, glass3);
setItem(4, item);
setButton(11, GuiUtils.createButtonItem(Settings.BUY_ICON.getMaterial(CompatibleMaterial.EMERALD),
instance.getLocale().getMessage("interface.yesno.yes").getMessage()),
(event) -> {
isYes = true;
exit();
instance.getRepairHandler().finish(true, player);
});
setButton(15, GuiUtils.createButtonItem(Settings.EXIT_ICON.getMaterial(CompatibleMaterial.OAK_DOOR),
instance.getLocale().getMessage("interface.yesno.no").getMessage()),
(event) -> {
exit();
instance.getRepairHandler().finish(false, player);
});
if (Settings.RAINBOW.getBoolean()) {
for (int cell = 0; cell < rows * 9; ++cell) {
if (getItem(cell) == null) {
setItem(cell, GuiUtils.getBorderItem(Methods.getRainbowGlass()));
}
}
}
setOnClose((event) -> {
if (!isYes) instance.getRepairHandler().finish(false, player);
});
}
}
package com.craftaro.ultimaterepairing.gui;
import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.ultimaterepairing.anvil.PlayerAnvilData;
import com.craftaro.ultimaterepairing.utils.Methods;
import com.craftaro.core.gui.Gui;
import com.craftaro.core.gui.GuiUtils;
import com.craftaro.core.utils.TextUtils;
import com.craftaro.ultimaterepairing.repair.RepairType;
import com.craftaro.ultimaterepairing.settings.Settings;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class StartConfirmGui extends Gui {
private final Player player;
private final UltimateRepairing instance = UltimateRepairing.getInstance();
private final ItemStack item;
private final RepairType type;
boolean isYes = false;
public StartConfirmGui(RepairType type, Player player, ItemStack item) {
this(type, player, item, null);
}
public StartConfirmGui(RepairType type, Player player, ItemStack item, Gui gui) {
super(gui);
this.player = player;
this.item = item;
this.type = type;
init();
}
protected void init() {
setRows(3);
String cost = "0";
PlayerAnvilData playerData = instance.getRepairHandler().getDataFor(player);
if (type == RepairType.EXPERIENCE) {
cost = playerData.getPrice() + " XP";
} else if (type == RepairType.ECONOMY) {
cost = String.valueOf(playerData.getPrice());
} else if (type == RepairType.ITEM) {
cost = playerData.getPrice() + " " + TextUtils.formatText(Methods.getType(item).name(), true);
}
setTitle(instance.getLocale().getMessage("interface.yesno.title" + (type == RepairType.ECONOMY ? "Eco" : ""))
.processPlaceholder("cost", cost).getMessage());
ItemStack glass1 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_1.getMaterial());
ItemStack glass2 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_2.getMaterial());
ItemStack glass3 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_3.getMaterial());
setDefaultItem(glass1);
mirrorFill(0, 0, true, true, glass2);
mirrorFill(0, 1, true, true, glass2);
mirrorFill(0, 2, true, true, glass3);
mirrorFill(1, 0, false, true, glass2);
mirrorFill(1, 1, false, true, glass3);
setItem(4, item);
setButton(11, GuiUtils.createButtonItem(Settings.BUY_ICON.getMaterial(XMaterial.EMERALD),
instance.getLocale().getMessage("interface.yesno.yes").getMessage()),
(event) -> {
isYes = true;
exit();
instance.getRepairHandler().finish(true, player);
});
setButton(15, GuiUtils.createButtonItem(Settings.EXIT_ICON.getMaterial(XMaterial.OAK_DOOR),
instance.getLocale().getMessage("interface.yesno.no").getMessage()),
(event) -> {
exit();
instance.getRepairHandler().finish(false, player);
});
if (Settings.RAINBOW.getBoolean()) {
for (int cell = 0; cell < rows * 9; ++cell) {
if (getItem(cell) == null) {
setItem(cell, GuiUtils.getBorderItem(Methods.getRainbowGlass()));
}
}
}
setOnClose((event) -> {
if (!isYes) instance.getRepairHandler().finish(false, player);
});
}
}

View File

@ -1,8 +1,8 @@
package com.songoda.ultimaterepairing.handlers;
package com.craftaro.ultimaterepairing.handlers;
import com.songoda.core.compatibility.CompatibleParticleHandler;
import com.songoda.core.compatibility.CompatibleParticleHandler.ParticleType;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.core.compatibility.CompatibleParticleHandler;
import com.craftaro.core.compatibility.CompatibleParticleHandler.ParticleType;
import org.bukkit.Bukkit;
import org.bukkit.event.Listener;
import org.bukkit.scheduler.BukkitTask;

View File

@ -1,16 +1,16 @@
package com.songoda.ultimaterepairing.handlers;
package com.craftaro.ultimaterepairing.handlers;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.compatibility.CompatibleSound;
import com.songoda.core.gui.GuiManager;
import com.songoda.core.hooks.EconomyManager;
import com.songoda.core.utils.PlayerUtils;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.songoda.ultimaterepairing.anvil.PlayerAnvilData;
import com.songoda.ultimaterepairing.gui.RepairGui;
import com.songoda.ultimaterepairing.gui.StartConfirmGui;
import com.songoda.ultimaterepairing.repair.RepairType;
import com.songoda.ultimaterepairing.utils.Methods;
import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial;
import com.craftaro.third_party.com.cryptomorin.xseries.XSound;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.ultimaterepairing.anvil.PlayerAnvilData;
import com.craftaro.ultimaterepairing.gui.RepairGui;
import com.craftaro.ultimaterepairing.gui.StartConfirmGui;
import com.craftaro.ultimaterepairing.utils.Methods;
import com.craftaro.core.gui.GuiManager;
import com.craftaro.core.hooks.EconomyManager;
import com.craftaro.core.utils.PlayerUtils;
import com.craftaro.ultimaterepairing.repair.RepairType;
import org.bukkit.Bukkit;
import org.bukkit.Effect;
import org.bukkit.GameMode;
@ -146,39 +146,39 @@ public class RepairHandler {
Effect effect = Effect.STEP_SOUND;
CompatibleMaterial blockType = CompatibleMaterial.REDSTONE_BLOCK;
XMaterial blockType = XMaterial.REDSTONE_BLOCK;
String typeStr = playerData.getToBeRepaired().getType().name();
if (typeStr.contains("NETHERITE")) {
blockType = CompatibleMaterial.NETHERITE_BLOCK;
blockType = XMaterial.NETHERITE_BLOCK;
} else if (typeStr.contains("DIAMOND")) {
blockType = CompatibleMaterial.DIAMOND_BLOCK;
blockType = XMaterial.DIAMOND_BLOCK;
} else if (typeStr.contains("IRON")) {
blockType = CompatibleMaterial.IRON_BLOCK;
blockType = XMaterial.IRON_BLOCK;
} else if (typeStr.contains("GOLD")) {
blockType = CompatibleMaterial.GOLD_BLOCK;
blockType = XMaterial.GOLD_BLOCK;
} else if (typeStr.contains("STONE")) {
blockType = CompatibleMaterial.STONE;
blockType = XMaterial.STONE;
} else if (typeStr.contains("WOOD")) {
blockType = CompatibleMaterial.OAK_WOOD;
blockType = XMaterial.OAK_WOOD;
}
final Material blockTypeFinal = blockType.getMaterial();
final Material blockTypeFinal = blockType.parseMaterial();
Location location = playerData.getLocations();
player.getWorld().playEffect(location, effect, blockType.getMaterial());
player.getWorld().playEffect(location, effect, blockTypeFinal);
Runnable runnable = () -> player.getWorld().playEffect(location, effect, blockTypeFinal);
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, runnable, 5L);
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, () -> {
player.getWorld().playEffect(location, effect, blockTypeFinal);
player.getWorld().playEffect(location, effect, Material.STONE);
CompatibleSound.BLOCK_ANVIL_LAND.play(player);
XSound.BLOCK_ANVIL_LAND.play(player);
}, 10L);
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, runnable, 15L);
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, runnable, 20L);
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, () -> {
CompatibleSound.BLOCK_ANVIL_LAND.play(player);
XSound.BLOCK_ANVIL_LAND.play(player);
player.getWorld().playEffect(location, effect, blockTypeFinal);
player.getWorld().playEffect(location, effect, Material.ANVIL);
instance.getLocale().getMessage("event.repair.success").sendPrefixedMessage(player);

View File

@ -1,9 +1,9 @@
package com.songoda.ultimaterepairing.listeners;
package com.craftaro.ultimaterepairing.listeners;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.songoda.ultimaterepairing.anvil.UAnvil;
import com.songoda.ultimaterepairing.settings.Settings;
import com.songoda.ultimaterepairing.utils.Methods;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.ultimaterepairing.anvil.UAnvil;
import com.craftaro.ultimaterepairing.utils.Methods;
import com.craftaro.ultimaterepairing.settings.Settings;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;

View File

@ -1,19 +1,16 @@
package com.songoda.ultimaterepairing.listeners;
package com.craftaro.ultimaterepairing.listeners;
import com.songoda.core.gui.GuiManager;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.songoda.ultimaterepairing.anvil.UAnvil;
import com.songoda.ultimaterepairing.gui.AnvilSettingsGui;
import com.songoda.ultimaterepairing.gui.RepairGui;
import com.songoda.ultimaterepairing.settings.Settings;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.ultimaterepairing.anvil.UAnvil;
import com.craftaro.ultimaterepairing.gui.AnvilSettingsGui;
import com.craftaro.ultimaterepairing.gui.RepairGui;
import com.craftaro.core.gui.GuiManager;
import com.craftaro.ultimaterepairing.settings.Settings;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerInteractEvent;
/**

View File

@ -1,4 +1,4 @@
package com.songoda.ultimaterepairing.listeners;
package com.craftaro.ultimaterepairing.listeners;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

View File

@ -1,7 +1,7 @@
package com.songoda.ultimaterepairing.listeners;
package com.craftaro.ultimaterepairing.listeners;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.songoda.ultimaterepairing.anvil.PlayerAnvilData;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.ultimaterepairing.anvil.PlayerAnvilData;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;

View File

@ -1,27 +1,27 @@
package com.songoda.ultimaterepairing.repair;
package com.craftaro.ultimaterepairing.repair;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import org.bukkit.entity.Player;
public enum RepairType {
ECONOMY(CompatibleMaterial.SUNFLOWER,
ECONOMY(XMaterial.SUNFLOWER,
"ultimaterepairing.use.ECO",
"interface.repair.ecoTitle"),
ITEM(CompatibleMaterial.DIAMOND,
ITEM(XMaterial.DIAMOND,
"ultimaterepairing.use.ITEM",
"interface.repair.itemTitle"),
EXPERIENCE(CompatibleMaterial.EXPERIENCE_BOTTLE,
EXPERIENCE(XMaterial.EXPERIENCE_BOTTLE,
"ultimaterepairing.use.XP",
"interface.repair.xpTitle");
private final CompatibleMaterial material;
private final XMaterial material;
private final String permission;
private final String title;
RepairType(CompatibleMaterial material, String permission, String titleLang) {
RepairType(XMaterial material, String permission, String titleLang) {
this.material = material;
this.permission = permission;
this.title = UltimateRepairing.getInstance().getLocale().getMessage(titleLang).getMessage();
@ -31,7 +31,7 @@ public enum RepairType {
return title;
}
public CompatibleMaterial getMaterial() {
public XMaterial getMaterial() {
return material;
}

View File

@ -1,11 +1,12 @@
package com.songoda.ultimaterepairing.settings;
package com.craftaro.ultimaterepairing.settings;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.configuration.Config;
import com.songoda.core.configuration.ConfigSetting;
import com.songoda.core.hooks.EconomyManager;
import com.songoda.core.hooks.HologramManager;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.craftaro.core.compatibility.CompatibleMaterial;
import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.core.configuration.Config;
import com.craftaro.core.configuration.ConfigSetting;
import com.craftaro.core.hooks.EconomyManager;
import com.craftaro.core.hooks.HologramManager;
import java.util.stream.Collectors;
@ -88,13 +89,13 @@ public class Settings {
// convert glass pane settings
int color;
if ((color = GLASS_TYPE_1.getInt(-1)) != -1) {
config.set(GLASS_TYPE_1.getKey(), CompatibleMaterial.getGlassPaneColor(color).name());
config.set(GLASS_TYPE_1.getKey(), CompatibleMaterial.getGlassPaneForColor(color).name());
}
if ((color = GLASS_TYPE_2.getInt(-1)) != -1) {
config.set(GLASS_TYPE_2.getKey(), CompatibleMaterial.getGlassPaneColor(color).name());
config.set(GLASS_TYPE_2.getKey(), CompatibleMaterial.getGlassPaneForColor(color).name());
}
if ((color = GLASS_TYPE_3.getInt(-1)) != -1) {
config.set(GLASS_TYPE_3.getKey(), CompatibleMaterial.getGlassPaneColor(color).name());
config.set(GLASS_TYPE_3.getKey(), CompatibleMaterial.getGlassPaneForColor(color).name());
}
// convert economy settings

View File

@ -1,10 +1,11 @@
package com.songoda.ultimaterepairing.utils;
package com.craftaro.ultimaterepairing.utils;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.math.MathUtils;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.songoda.ultimaterepairing.repair.RepairType;
import com.songoda.ultimaterepairing.settings.Settings;
import com.craftaro.core.compatibility.CompatibleMaterial;
import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial;
import com.craftaro.ultimaterepairing.UltimateRepairing;
import com.craftaro.core.math.MathUtils;
import com.craftaro.ultimaterepairing.repair.RepairType;
import com.craftaro.ultimaterepairing.settings.Settings;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
@ -26,8 +27,8 @@ import java.util.Random;
public class Methods {
static Random rand = new Random();
public static CompatibleMaterial getRainbowGlass() {
return CompatibleMaterial.getGlassPaneColor(rand.nextInt(16));
public static XMaterial getRainbowGlass() {
return CompatibleMaterial.getGlassPaneForColor(rand.nextInt(16));
}
public static int getCost(RepairType type, ItemStack item) {
@ -74,22 +75,22 @@ public class Methods {
public static Material getType(ItemStack item) {
if (Settings.REPAIR_ONLY_SAME_TYPE.getBoolean()) {
if (item.getType().name().contains("NETHERITE"))
return CompatibleMaterial.NETHERITE_INGOT.getMaterial();
return XMaterial.NETHERITE_INGOT.parseMaterial();
if (item.getType().name().contains("DIAMOND"))
return CompatibleMaterial.DIAMOND.getMaterial();
return XMaterial.DIAMOND.parseMaterial();
if (item.getType().name().contains("IRON"))
return CompatibleMaterial.IRON_INGOT.getMaterial();
return XMaterial.IRON_INGOT.parseMaterial();
if (item.getType().name().contains("GOLD"))
return CompatibleMaterial.GOLD_INGOT.getMaterial();
return XMaterial.GOLD_INGOT.parseMaterial();
if (item.getType().name().contains("LEATHER"))
return CompatibleMaterial.LEATHER.getMaterial();
return XMaterial.LEATHER.parseMaterial();
if (item.getType().name().contains("STONE"))
return CompatibleMaterial.STONE.getMaterial();
return XMaterial.STONE.parseMaterial();
if (item.getType().name().contains("WOOD"))
return CompatibleMaterial.OAK_WOOD.getMaterial();
return XMaterial.OAK_WOOD.parseMaterial();
}
return Settings.ITEM_ICON.getMaterial(CompatibleMaterial.DIAMOND).getMaterial();
return Settings.ITEM_ICON.getMaterial(XMaterial.DIAMOND).parseMaterial();
}
/**

View File

@ -1,9 +1,9 @@
name: UltimateRepairing
description: UltimateRepairing
main: com.songoda.ultimaterepairing.UltimateRepairing
main: com.craftaro.ultimaterepairing.UltimateRepairing
softdepend: [ HolographicDisplays, Vault ]
version: maven-version-number
author: Songoda
author: Craftaro
api-version: 1.13
commands: