Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Не воспроизводиться аудиоклип wav на сервере

MasterAlim2023

Ньюби
Баллы
1
Имя в Minecraft
MasterAlim
Привет, у меня возникла проблема, мой аудиоклип a.wav не воспроизводиться, я не знаю что делать даже chatGTP не смог помочь. Кто знает как сделать так чтоб у меня воспроизводился мой аудиоклип на сервере minecraft 1.12.2 Forge скажите пожалуйста.

Вот мой код:


package scpourworld.pm2;

import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import org.bukkit.*;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

import java.io.IOException;
import java.io.InputStream;

public class PM2 extends JavaPlugin implements Listener {

private WorldGuardPlugin worldGuard;

@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);

getLogger().info("MyPlugin has been enabled.");
worldGuard = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");
if (worldGuard == null) {
getLogger().severe("WorldGuard not found!");
getServer().getPluginManager().disablePlugin(this);
return;
}
getServer().getPluginManager().registerEvents(this, this);
}

@Override
public void onDisable() {
getLogger().info("MyPlugin has been disabled.");
}

@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
if (event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getClickedBlock().getType() == Material.CONCRETE) {


InputStream inputStream = getClass().getResourceAsStream("/a.wav");
if (inputStream == null) {
getLogger().warning("File not found!");
return;
}

Sound sound = Sound.ENTITY_GENERIC_EXPLODE;
float volume = 100.0f;
float pitch = 10.0f;

for (Player player : Bukkit.getOnlinePlayers()) {
player.sendMessage("Sound_1 starting " + player.getName());
player.playSound(player.getLocation(), sound, SoundCategory.PLAYERS, volume, pitch);
}

try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}



final World world = event.getClickedBlock().getWorld();
final ProtectedRegion region = worldGuard.getRegionManager(world).getRegion("lz");

new BukkitRunnable() {
@Override
public void run() {
Bukkit.broadcastMessage(ChatColor.RED + "Активирована детонация `Альфа` боеголовки, до уничтожения подземной части комплекса осталось, 90 секунд!");
for (LivingEntity entity : world.getLivingEntities()) {
if (region.contains(entity.getLocation().getBlockX(), entity.getLocation().getBlockY(), entity.getLocation().getBlockZ())) {
entity.setHealth(0);
}
}
}
}.runTaskTimer(worldGuard, 1400L, 20L);
}
}
}
 
В своем коде ты абсолютно ничего не делаешь со своим файлом, даже не читаешь его.

Более того, просто так игрокам и нельзя отправить файл/аудио без модов. Максимум ты можешь добавить свою композицию в ресурспак и вызывать с сервера отправку звука по ключу.
Звуки в ресурспаках хранятся в формате ogg. Таким образом, тебе необходимо конвертировать wav в ogg.
Подробнее о добавлении ogg в ресурспак можно почитать, например, тут: https://mcmodels.net/how-to-tutoria...ls/how-to-add-custom-sounds-to-resource-pack/

Хотя, судя по твоим словам, у тебя сервер поддерживает forge, поэтому можешь поискать мод, который передает звуки на клиент напрямую. Но тогда тебе и для разработки тоже нужно использовать Forge API, а не Bukkit API
 

Поделиться этой страницей

Назад
Верх