mirror of
https://github.com/SPAWNRYS-ban/FUCK-CustomDiscs.git
synced 2025-12-10 13:30:24 +05:00
Fixed Issues with Hoppers
This commit is contained in:
@@ -11,6 +11,6 @@ mod_id=customdiscsplugin
|
||||
# Target an older API to make it compatible with older versions of Simple Voice Chat
|
||||
voicechat_api_version=2.5.0
|
||||
|
||||
plugin_version=2.6
|
||||
plugin_version=2.6.1
|
||||
maven_group=me.Navoei.customdiscsplugin
|
||||
archives_base_name=custom-discs
|
||||
@@ -2,18 +2,13 @@ package me.Navoei.customdiscsplugin;
|
||||
|
||||
import me.Navoei.customdiscsplugin.language.Lang;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.block.Jukebox;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
@@ -24,7 +19,6 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
public class HopperManager implements Listener {
|
||||
@@ -69,22 +63,14 @@ public class HopperManager implements Listener {
|
||||
if (block == null) return;
|
||||
if (!block.getLocation().getChunk().isLoaded()) return;
|
||||
if (!block.getType().equals(Material.JUKEBOX)) return;
|
||||
if (!block.getRelative(BlockFace.DOWN).getType().equals(Material.HOPPER)) return;
|
||||
|
||||
Block hopperBlock = block.getRelative(BlockFace.DOWN);
|
||||
org.bukkit.block.Hopper hopper = (org.bukkit.block.Hopper) hopperBlock.getState();
|
||||
|
||||
Jukebox jukebox = (Jukebox) block.getState();
|
||||
|
||||
InventoryMoveItemEvent event = new InventoryMoveItemEvent(jukebox.getInventory(), jukebox.getRecord(), hopper.getInventory(), false);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
if (!Arrays.toString(hopper.getInventory().getContents()).contains("null")) return;
|
||||
|
||||
jukebox.setRecord(new ItemStack(Material.AIR));
|
||||
block.setBlockData(jukebox.getBlockData());
|
||||
if (jukebox.isPlaying()) {
|
||||
jukebox.stopPlaying();
|
||||
}
|
||||
//Set the block type to force an update.
|
||||
block.setType(Material.JUKEBOX);
|
||||
jukebox.update(true, true);
|
||||
|
||||
}
|
||||
|
||||
@@ -94,7 +80,9 @@ public class HopperManager implements Listener {
|
||||
if (blockState instanceof Jukebox jukebox) {
|
||||
if (!jukebox.hasRecord()) return;
|
||||
if (!PlayerManager.instance().isAudioPlayerPlaying(blockState.getLocation()) && isCustomMusicDisc(jukebox.getRecord())) {
|
||||
discToHopper(blockState.getBlock());
|
||||
//Set the block type to force an update.
|
||||
blockState.getBlock().setType(Material.JUKEBOX);
|
||||
jukebox.update(true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -113,4 +101,5 @@ public class HopperManager implements Listener {
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -83,7 +83,9 @@ public class PlayerManager {
|
||||
}
|
||||
|
||||
audioPlayer.setOnStopped(() -> {
|
||||
//Stuff that runs once the audio player ends.
|
||||
|
||||
//Stop the vanilla disc if it is playing. This ensures the hopper will pickup the disc.
|
||||
Bukkit.getScheduler().runTask(CustomDiscs.getInstance(), () -> HopperManager.instance().discToHopper(block));
|
||||
|
||||
playerMap.remove(id);
|
||||
|
||||
Reference in New Issue
Block a user