Merge branch 'development'
This commit is contained in:
commit
e625e9bfa2
2
pom.xml
2
pom.xml
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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++;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue