Merge branch 'development'

This commit is contained in:
Brianna 2020-09-23 16:04:31 -05:00
commit e625e9bfa2
6 changed files with 27 additions and 59 deletions

View File

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

View File

@ -3,7 +3,6 @@ package com.songoda.ultimaterepairing.anvil;
import com.songoda.ultimaterepairing.repair.RepairType;
import org.bukkit.Location;
import org.bukkit.entity.Item;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
public class PlayerAnvilData {
@ -13,7 +12,7 @@ public class PlayerAnvilData {
private RepairType type;
private Item item;
private ItemStack toBeRepaired;
private EquipmentSlot slot = null;
private int slot = -1;
private Location locations;
private boolean inRepair;
private boolean beingRepaired;
@ -82,11 +81,11 @@ public class PlayerAnvilData {
this.beingRepaired = beingRepaired;
}
public EquipmentSlot getSlot() {
public int getSlot() {
return slot;
}
public void setSlot(EquipmentSlot slot) {
public void setSlot(int slot) {
this.slot = slot;
}
}

View File

@ -68,10 +68,11 @@ public class RepairGui extends Gui {
init(type.getNext(player)));
int i = 9;
for (ItemStack item : player.getInventory().getContents()) {
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;
ItemStack toRepair = item.clone();
short durability = item.getDurability();
@ -95,9 +96,10 @@ public class RepairGui extends Gui {
}
item.setDurability(durability);
int finalplayerslot = playerslot;
setButton(i, item, (event) -> {
exit();
UltimateRepairing.getInstance().getRepairHandler().preRepair(toRepair, player, type, anvil);
UltimateRepairing.getInstance().getRepairHandler().preRepair(toRepair, finalplayerslot, player, type, anvil);
});
i++;
}

View File

@ -16,7 +16,6 @@ import org.bukkit.*;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.inventory.EntityEquipment;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.util.Vector;
@ -49,35 +48,12 @@ public class RepairHandler {
}
public void preRepair(ItemStack itemStack, Player player, RepairType type, Location anvil) {
public void preRepair(ItemStack itemStack, int playerslot, Player player, RepairType type, Location anvil) {
// Get from Map, put new instance in Map if it doesn't exist
PlayerAnvilData playerData = playerAnvilData.computeIfAbsent(player.getUniqueId(), uuid -> new PlayerAnvilData());
EntityEquipment equipment = player.getEquipment();
if (equipment != null) {
if (equipment.getItemInHand().equals(itemStack)) {
equipment.setItemInHand(null);
playerData.setSlot(EquipmentSlot.HAND);
} else if (itemStack.equals(equipment.getHelmet())) {
equipment.setHelmet(null);
playerData.setSlot(EquipmentSlot.HEAD);
} else if (itemStack.equals(equipment.getChestplate())) {
equipment.setChestplate(null);
playerData.setSlot(EquipmentSlot.CHEST);
} else if (itemStack.equals(equipment.getLeggings())) {
equipment.setLeggings(null);
playerData.setSlot(EquipmentSlot.LEGS);
} else if (itemStack.equals(equipment.getBoots())) {
equipment.setBoots(null);
playerData.setSlot(EquipmentSlot.FEET);
} else if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_9)) {
if (itemStack.equals(equipment.getItemInOffHand())) {
equipment.setItemInOffHand(null);
playerData.setSlot(EquipmentSlot.OFF_HAND);
}
}
}
player.getInventory().removeItem(itemStack);
player.getInventory().setItem(playerslot, null);
playerData.setSlot(playerslot);
Item item = player.getWorld().dropItem(anvil.add(0.5, 2, 0.5), itemStack);
@ -234,31 +210,12 @@ public class RepairHandler {
}
public void removeItem(PlayerAnvilData playerData, Player player) {
EquipmentSlot slot = playerData.getSlot();
if (slot == null)
int slot = playerData.getSlot();
if (slot < 0)
PlayerUtils.giveItem(player, playerData.getToBeRepaired());
else if (player.getEquipment() != null) {
EntityEquipment equipment = player.getEquipment();
else {
ItemStack item = playerData.getToBeRepaired();
switch (slot) {
case HAND:
equipment.setItemInHand(item);
break;
case OFF_HAND:
equipment.setItemInOffHand(item);
break;
case HEAD:
equipment.setHelmet(item);
break;
case CHEST:
equipment.setChestplate(item);
break;
case LEGS:
equipment.setLeggings(item);
break;
case FEET:
equipment.setBoots(item);
}
player.getInventory().setItem(slot, item);
}
if (playerData.getItem() != null)
playerData.getItem().remove();

View File

@ -2,6 +2,7 @@ package com.songoda.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 org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@ -27,7 +28,10 @@ public class BlockListeners implements Listener {
return;
}
instance.getAnvilManager().getAnvil(event.getBlock()).setPermPlaced(true);
UAnvil anvil = instance.getAnvilManager().getAnvil(event.getBlock());
anvil.setParticles(Settings.SHOW_PARTICLES_BY_DEFAULT.getBoolean());
anvil.setHologram(Settings.SHOW_HOLOGRAMS_BY_DEFAULT.getBoolean());
anvil.setPermPlaced(true);
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)

View File

@ -69,6 +69,12 @@ 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?");
/**
* In order to set dynamic economy comment correctly, this needs to be