mirror of
https://github.com/JEFF-Media-GbR/BetterTridents.git
synced 2024-09-27 11:42:35 +02:00
2.0.2 release, fixed tridents disappearing when throwing similar tridents from offhand
This commit is contained in:
parent
a778b0bbde
commit
33dd0a981c
@ -1,3 +1,6 @@
|
|||||||
|
## 2.0.2
|
||||||
|
- Fixed tridents disappearing when throwing similar tridents (same durability, etc.) from the offhand
|
||||||
|
|
||||||
## 2.0.1
|
## 2.0.1
|
||||||
- Fixed tridents getting lost on return when throwing many of them from the offhand while having "return-to-offhand" set to "true"
|
- Fixed tridents getting lost on return when throwing many of them from the offhand while having "return-to-offhand" set to "true"
|
||||||
|
|
||||||
|
20
pom.xml
20
pom.xml
@ -6,7 +6,7 @@
|
|||||||
<groupId>de.jeff_media</groupId>
|
<groupId>de.jeff_media</groupId>
|
||||||
<name>BetterTridents</name>
|
<name>BetterTridents</name>
|
||||||
<artifactId>BetterTridents</artifactId>
|
<artifactId>BetterTridents</artifactId>
|
||||||
<version>2.0.1</version>
|
<version>2.0.2</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<spigot.prefix>${project.name}</spigot.prefix>
|
<spigot.prefix>${project.name}</spigot.prefix>
|
||||||
@ -49,7 +49,23 @@
|
|||||||
</relocation>
|
</relocation>
|
||||||
<relocation>
|
<relocation>
|
||||||
<pattern>org.bstats</pattern>
|
<pattern>org.bstats</pattern>
|
||||||
<shadedPattern>de.jeff_Media.notridentvoid</shadedPattern>
|
<shadedPattern>de.jeff_media.bettertridents.bstats</shadedPattern>
|
||||||
|
</relocation>
|
||||||
|
<relocation>
|
||||||
|
<pattern>org.apache</pattern>
|
||||||
|
<shadedPattern>de.jeff_media.bettertridents.lib.org.apache</shadedPattern>
|
||||||
|
</relocation>
|
||||||
|
<relocation>
|
||||||
|
<pattern>org.codehaus</pattern>
|
||||||
|
<shadedPattern>de.jeff_media.bettertridents.lib.org.codehaus</shadedPattern>
|
||||||
|
</relocation>
|
||||||
|
<relocation>
|
||||||
|
<pattern>org.intellij</pattern>
|
||||||
|
<shadedPattern>de.jeff_media.bettertridents.lib.org.intellij</shadedPattern>
|
||||||
|
</relocation>
|
||||||
|
<relocation>
|
||||||
|
<pattern>org.jetbrains</pattern>
|
||||||
|
<shadedPattern>de.jeff_media.bettertridents.lib.org.jetbrains</shadedPattern>
|
||||||
</relocation>
|
</relocation>
|
||||||
</relocations>
|
</relocations>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
@ -11,6 +11,8 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerPickupArrowEvent;
|
import org.bukkit.event.player.PlayerPickupArrowEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
|
|
||||||
public class OffhandListener implements Listener {
|
public class OffhandListener implements Listener {
|
||||||
|
|
||||||
@ -18,18 +20,20 @@ public class OffhandListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
private void onPickupTrident(PlayerPickupArrowEvent event) {
|
private void onPickupTrident(PlayerPickupArrowEvent event) {
|
||||||
main.debug("onPickupTrident");
|
|
||||||
if (!main.getConfig().getBoolean(Config.RETURN_TO_OFFHAND)) return;
|
if (!main.getConfig().getBoolean(Config.RETURN_TO_OFFHAND)) return;
|
||||||
if (!(event.getArrow() instanceof Trident)) return;
|
if (!(event.getArrow() instanceof Trident)) return;
|
||||||
Trident trident = (Trident) event.getArrow();
|
Trident trident = (Trident) event.getArrow();
|
||||||
if(!EnchantmentUtils.isOffhandThrown(trident)) {
|
if(!EnchantmentUtils.isOffhandThrown(trident)) {
|
||||||
main.debug("This trident wasn't thrown from the offhand.");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (player.getInventory().getItemInOffHand().getType() != Material.AIR) return;
|
if (player.getInventory().getItemInOffHand().getType() != Material.AIR) return;
|
||||||
|
|
||||||
ItemStack tridentItem = event.getItem().getItemStack().clone();
|
ItemStack tridentItem = event.getItem().getItemStack().clone();
|
||||||
|
ItemMeta meta = tridentItem.getItemMeta();
|
||||||
|
meta.getPersistentDataContainer().set(Main.OFFHAND_TAG, PersistentDataType.BYTE, (byte) 1);
|
||||||
|
tridentItem.setItemMeta(meta);
|
||||||
|
event.getItem().setItemStack(tridentItem);
|
||||||
|
|
||||||
main.debug("Starting offhand task...");
|
main.debug("Starting offhand task...");
|
||||||
new MoveToOffhand(player, tridentItem).runTask(main);
|
new MoveToOffhand(player, tridentItem).runTask(main);
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
package de.jeff_media.bettertridents.tasks;
|
package de.jeff_media.bettertridents.tasks;
|
||||||
|
|
||||||
|
import de.jeff_media.bettertridents.Main;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
public class MoveToOffhand extends BukkitRunnable {
|
public class MoveToOffhand extends BukkitRunnable {
|
||||||
@ -16,12 +19,17 @@ public class MoveToOffhand extends BukkitRunnable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
for (ItemStack item : player.getInventory()) {
|
for (int i = 0; i < player.getInventory().getSize(); i++) {
|
||||||
|
ItemStack item = player.getInventory().getItem(i);
|
||||||
if (item != null && item.equals(tridentItem)) {
|
if (item != null && item.equals(tridentItem)) {
|
||||||
|
ItemMeta meta = tridentItem.getItemMeta();
|
||||||
|
meta.getPersistentDataContainer().remove(Main.OFFHAND_TAG);
|
||||||
|
tridentItem.setItemMeta(meta);
|
||||||
ItemStack offhand = player.getInventory().getItemInOffHand();
|
ItemStack offhand = player.getInventory().getItemInOffHand();
|
||||||
if(offhand == null || offhand.getType() == Material.AIR) {
|
if(offhand == null || offhand.getType() == Material.AIR) {
|
||||||
player.getInventory().remove(item);
|
player.getInventory().setItemInOffHand(tridentItem.clone());
|
||||||
player.getInventory().setItemInOffHand(item.clone());
|
tridentItem.setAmount(tridentItem.getAmount()-1);
|
||||||
|
player.getInventory().setItem(i, tridentItem);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user