Merge branch 'development'

This commit is contained in:
Brianna 2020-09-28 15:14:54 -05:00
commit 12d2f59610
16 changed files with 76 additions and 90 deletions

View File

@ -2,7 +2,7 @@
<groupId>com.songoda</groupId>
<artifactId>UltimateRepairing</artifactId>
<modelVersion>4.0.0</modelVersion>
<version>1.4.3b</version>
<version>1.4.4</version>
<build>
<defaultGoal>clean install</defaultGoal>
<finalName>UltimateRepairing-${project.version}</finalName>

View File

@ -83,7 +83,7 @@ public class UltimateRepairing extends SongodaPlugin {
pluginManager.registerEvents(new PlayerListeners(this), this);
pluginManager.registerEvents(new BlockListeners(this), this);
pluginManager.registerEvents(new InteractListeners(this, guiManager), this);
pluginManager.registerEvents(new InventoryListeners(this), this);
pluginManager.registerEvents(new InventoryListeners(), this);
Bukkit.getScheduler().runTaskTimerAsynchronously(this, this::saveToFile, 6000, 6000);
}

View File

@ -3,12 +3,12 @@ package com.songoda.ultimaterepairing.anvil;
import com.songoda.core.hooks.HologramManager;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.songoda.ultimaterepairing.settings.Settings;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import java.util.ArrayList;
import java.util.Objects;
import org.bukkit.Bukkit;
public class UAnvil {
@ -45,7 +45,7 @@ public class UAnvil {
Location location = getLocation().add(0, .1, 0);
Bukkit.getScheduler().runTaskLater(UltimateRepairing.getInstance(), ()->{
Bukkit.getScheduler().runTaskLater(UltimateRepairing.getInstance(), () -> {
if (!hologram) {
HologramManager.removeHologram(location);
} else {
@ -117,7 +117,8 @@ public class UAnvil {
UAnvil other = (UAnvil) obj;
return Objects.equals(location, other.location);
}
public boolean shouldSave(){
public boolean shouldSave() {
return hologram || particles || infinity || permPlaced;
}

View File

@ -2,9 +2,10 @@ package com.songoda.ultimaterepairing.commands;
import com.songoda.core.commands.AbstractCommand;
import com.songoda.ultimaterepairing.UltimateRepairing;
import java.util.List;
import org.bukkit.command.CommandSender;
import java.util.List;
public class CommandReload extends AbstractCommand {
public CommandReload() {

View File

@ -4,13 +4,14 @@ 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 java.util.List;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.List;
public class CommandSettings extends AbstractCommand {
GuiManager guiManager;
private GuiManager guiManager;
public CommandSettings(GuiManager guiManager) {
super(true, "settings");

View File

@ -2,10 +2,11 @@ package com.songoda.ultimaterepairing.commands;
import com.songoda.core.commands.AbstractCommand;
import com.songoda.ultimaterepairing.UltimateRepairing;
import java.util.List;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.List;
public class CommandURAnvil extends AbstractCommand {
public CommandURAnvil() {

View File

@ -10,7 +10,7 @@ import org.bukkit.inventory.ItemStack;
public class AnvilSettingsGui extends Gui {
final UAnvil anvil;
private final UAnvil anvil;
public AnvilSettingsGui(UAnvil anvil, Gui gui) {
super(gui);

View File

@ -1,6 +1,5 @@
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.ItemUtils;
@ -17,10 +16,10 @@ import java.util.Arrays;
public class RepairGui extends Gui {
final Location anvil;
final Player player;
final UltimateRepairing plugin = UltimateRepairing.getInstance();
final ItemStack item;
private final Location anvil;
private final Player player;
private final UltimateRepairing plugin = UltimateRepairing.getInstance();
private final ItemStack item;
public static void newGui(Player player, Location anvil) {
RepairType type = RepairType.EXPERIENCE;
@ -78,18 +77,18 @@ public class RepairGui extends Gui {
final String itemName = TextUtils.formatText(ItemUtils.getItemName(item).replace("_", " "), true);
if (type == RepairType.ECONOMY) {
item = GuiUtils.createButtonItem(CompatibleMaterial.getMaterial(item),
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(CompatibleMaterial.getMaterial(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(CompatibleMaterial.getMaterial(item),
item = GuiUtils.createButtonItem(item,
plugin.getLocale().getMessage("interface.repair.item")
.processPlaceholder("ITEM", itemName).getMessage(),
plugin.getLocale().getMessage("interface.repair.xplore").getMessage());

View File

@ -3,33 +3,29 @@ 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.ItemUtils;
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.Location;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class StartConfirmGui extends Gui {
final Location anvil;
final Player player;
final UltimateRepairing instance = UltimateRepairing.getInstance();
final ItemStack item;
final RepairType type;
private final Player player;
private final UltimateRepairing instance = UltimateRepairing.getInstance();
private final ItemStack item;
private final RepairType type;
boolean isYes = false;
public StartConfirmGui(Location anvil, RepairType type, Player player, ItemStack item) {
this(anvil, type, player, item, null);
public StartConfirmGui(RepairType type, Player player, ItemStack item) {
this(type, player, item, null);
}
public StartConfirmGui(Location anvil, RepairType type, Player player, ItemStack item, Gui gui) {
public StartConfirmGui(RepairType type, Player player, ItemStack item, Gui gui) {
super(gui);
this.anvil = anvil;
this.player = player;
this.item = item;
this.type = type;
@ -47,7 +43,7 @@ public class StartConfirmGui extends Gui {
} else if (type == RepairType.ECONOMY) {
cost = "$" + playerData.getPrice();
} else if (type == RepairType.ITEM) {
cost = playerData.getPrice() + " " + Methods.formatText(Methods.getType(item).name(), true);
cost = playerData.getPrice() + " " + TextUtils.formatText(Methods.getType(item).name(), true);
}
setTitle(instance.getLocale().getMessage("interface.yesno.title")
@ -82,13 +78,15 @@ public class StartConfirmGui extends Gui {
instance.getRepairHandler().finish(false, player);
});
if(Settings.RAINBOW.getBoolean()) {
for(int cell = 0; cell < rows * 9; ++cell) {
if(getItem(cell) == null) {
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);});
setOnClose((event) -> {
if (!isYes) instance.getRepairHandler().finish(false, player);
});
}
}

View File

@ -2,7 +2,6 @@ package com.songoda.ultimaterepairing.handlers;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.compatibility.CompatibleSound;
import com.songoda.core.compatibility.ServerVersion;
import com.songoda.core.gui.GuiManager;
import com.songoda.core.hooks.EconomyManager;
import com.songoda.core.utils.PlayerUtils;
@ -12,10 +11,13 @@ 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 org.bukkit.*;
import org.bukkit.Bukkit;
import org.bukkit.Effect;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.inventory.EntityEquipment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.util.Vector;
@ -107,7 +109,7 @@ public class RepairHandler {
playerData.setType(type);
playerData.setPrice(price);
guiManager.showGUI(p, new StartConfirmGui(playerData.getLocation(), type, p, item));
guiManager.showGUI(p, new StartConfirmGui(type, p, item));
}

View File

@ -15,10 +15,10 @@ import org.bukkit.event.block.BlockPlaceEvent;
*/
public class BlockListeners implements Listener {
private final UltimateRepairing instance;
private final UltimateRepairing plugin;
public BlockListeners(UltimateRepairing instance) {
this.instance = instance;
public BlockListeners(UltimateRepairing plugin) {
this.plugin = plugin;
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
@ -28,7 +28,7 @@ public class BlockListeners implements Listener {
return;
}
UAnvil anvil = instance.getAnvilManager().getAnvil(event.getBlock());
UAnvil anvil = plugin.getAnvilManager().getAnvil(event.getBlock());
anvil.setParticles(Settings.SHOW_PARTICLES_BY_DEFAULT.getBoolean());
anvil.setHologram(Settings.SHOW_HOLOGRAMS_BY_DEFAULT.getBoolean());
anvil.setPermPlaced(true);
@ -38,12 +38,12 @@ public class BlockListeners implements Listener {
public void onBlockBreak(BlockBreakEvent event) {
String loc = Methods.serializeLocation(event.getBlock());
if (!event.getBlock().getType().name().contains("ANVIL") && !instance.getConfig().contains("data.anvil." + loc)) {
if (!event.getBlock().getType().name().contains("ANVIL") && !plugin.getConfig().contains("data.anvil." + loc)) {
return;
}
UAnvil anvil = instance.getAnvilManager().getAnvil(event.getBlock());
UAnvil anvil = plugin.getAnvilManager().getAnvil(event.getBlock());
anvil.setHologram(false);
instance.getAnvilManager().removeAnvil(event.getBlock().getLocation());
plugin.getAnvilManager().removeAnvil(event.getBlock().getLocation());
}
}

View File

@ -21,11 +21,11 @@ import org.bukkit.event.player.PlayerInteractEvent;
public class InteractListeners implements Listener {
private final UltimateRepairing instance;
private final UltimateRepairing plugin;
private final GuiManager guiManager;
public InteractListeners(UltimateRepairing instance, GuiManager guiManager) {
this.instance = instance;
public InteractListeners(UltimateRepairing plugin, GuiManager guiManager) {
this.plugin = plugin;
this.guiManager = guiManager;
}
@ -41,14 +41,10 @@ public class InteractListeners implements Listener {
if (!event.getClickedBlock().getType().name().contains("ANVIL") // don't pay attention if it's not an anvil
// also don't handle if we don't have perms to use this repair anvil
|| (Settings.PERMISSION_ANVIL_PLACE.getBoolean()
&& !(anvil1 = instance.getAnvilManager().getAnvil(event.getClickedBlock())).isPermPlaced())) {
&& !(anvil1 = plugin.getAnvilManager().getAnvil(event.getClickedBlock())).isPermPlaced())) {
return;
}
anvil1 = anvil1 != null ? anvil1 : instance.getAnvilManager().getAnvil(event.getClickedBlock());
// if (anvil1.isInfinity()) {
// event.getClickedBlock().setType(Material.AIR);
// event.getClickedBlock().setType(Material.ANVIL); //ToDO: This may not work.
// }
anvil1 = anvil1 != null ? anvil1 : plugin.getAnvilManager().getAnvil(event.getClickedBlock());
// check if we should process this as a right click
boolean rightClick = (event.getAction() == Action.RIGHT_CLICK_BLOCK) ^ (Settings.SWAP_LEFT_RIGHT.getBoolean());
// admin interface?

View File

@ -1,6 +1,5 @@
package com.songoda.ultimaterepairing.listeners;
import com.songoda.ultimaterepairing.UltimateRepairing;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryPickupItemEvent;
@ -10,12 +9,6 @@ import org.bukkit.event.inventory.InventoryPickupItemEvent;
*/
public class InventoryListeners implements Listener {
private final UltimateRepairing instance;
public InventoryListeners(UltimateRepairing instance) {
this.instance = instance;
}
@EventHandler
public void onPickup(InventoryPickupItemEvent event) {
if (event.getItem().hasMetadata("UltimateRepairing"))

View File

@ -8,21 +8,20 @@ import org.bukkit.event.player.PlayerQuitEvent;
public class PlayerListeners implements Listener {
private final UltimateRepairing plugin;
private final UltimateRepairing instance;
public PlayerListeners(UltimateRepairing instance) {
this.instance = instance;
public PlayerListeners(UltimateRepairing plugin) {
this.plugin = plugin;
}
@EventHandler
public void onLeave(PlayerQuitEvent event) {
if (!instance.getRepairHandler().hasInstance(event.getPlayer())
|| !instance.getRepairHandler().getDataFor(event.getPlayer()).getInRepair())
if (!plugin.getRepairHandler().hasInstance(event.getPlayer())
|| !plugin.getRepairHandler().getDataFor(event.getPlayer()).getInRepair())
return;
PlayerAnvilData playerData = instance.getRepairHandler().getDataFor(event.getPlayer());
instance.getRepairHandler().removeItem(playerData, event.getPlayer());
PlayerAnvilData playerData = plugin.getRepairHandler().getDataFor(event.getPlayer());
plugin.getRepairHandler().removeItem(playerData, event.getPlayer());
}
}

View File

@ -6,6 +6,7 @@ import com.songoda.core.configuration.ConfigSetting;
import com.songoda.core.hooks.EconomyManager;
import com.songoda.core.hooks.HologramManager;
import com.songoda.ultimaterepairing.UltimateRepairing;
import java.util.stream.Collectors;
public class Settings {
@ -26,12 +27,12 @@ public class Settings {
public static final ConfigSetting MULTIPLY_COST_FOR_ENCHANTED = new ConfigSetting(config, "Main.Cost Multiplier For Enchanted Items", 2,
"Should enchanted items have their repair costs multiplied?");
public static final ConfigSetting ECONOMY = new ConfigSetting(config, "Main.Economy",
public static final ConfigSetting ECONOMY = new ConfigSetting(config, "Main.Economy",
EconomyManager.getEconomy() == null ? "Vault" : EconomyManager.getEconomy().getName(),
"Which economy plugin should be used?",
"You can choose from \"" + EconomyManager.getManager().getRegisteredPlugins().stream().collect(Collectors.joining("\", \"")) + "\".");
public static final ConfigSetting HOLOGRAM = new ConfigSetting(config, "Main.Hologram",
public static final ConfigSetting HOLOGRAM = new ConfigSetting(config, "Main.Hologram",
HologramManager.getHolograms() == null ? "HolographicDisplays" : HologramManager.getHolograms().getName(),
"Which hologram plugin should be used?",
"You can choose from \"" + HologramManager.getManager().getRegisteredPlugins().stream().collect(Collectors.joining(", ")) + "\".");
@ -69,10 +70,10 @@ public class Settings {
public static final ConfigSetting LANGUGE_MODE = new ConfigSetting(config, "System.Language Mode", "en_US",
"The enabled language file.",
"More language files (if available) can be found in the plugins data folder.");
public static final ConfigSetting SHOW_PARTICLES_BY_DEFAULT = new ConfigSetting(config, "Main.Show Particles By Default", true,
"Should particles be enabled when an anvil is placed down?");
public static final ConfigSetting SHOW_HOLOGRAMS_BY_DEFAULT = new ConfigSetting(config, "Main.Show Holograms By Default", true,
"Should holograms be enabled when an anvil is placed down?");

View File

@ -4,7 +4,11 @@ import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.ultimaterepairing.UltimateRepairing;
import com.songoda.ultimaterepairing.repair.RepairType;
import com.songoda.ultimaterepairing.settings.Settings;
import org.bukkit.*;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
@ -12,7 +16,11 @@ import org.bukkit.inventory.ItemStack;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.util.*;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
/**
* Created by songoda on 2/25/2017.
@ -192,18 +200,4 @@ public class Methods {
serializeCache.put(cacheKey, location.clone());
return location;
}
public static String formatText(String text) {
if (text == null || text.equals(""))
return "";
return formatText(text, false);
}
public static String formatText(String text, boolean cap) {
if (text == null || text.equals(""))
return "";
if (cap)
text = text.substring(0, 1).toUpperCase() + text.substring(1);
return ChatColor.translateAlternateColorCodes('&', text);
}
}