Search in sources :

Example 1 with RadioUserService

use of gg.projecteden.nexus.models.radio.RadioUserService in project Nexus by ProjectEdenGG.

the class RadioHeads method onClickRadio.

@EventHandler
public void onClickRadio(PlayerInteractEvent event) {
    if (BearFair21.isNotAtBearFair(event))
        return;
    if (WorldGuardEditCommand.canWorldGuardEdit(event.getPlayer()))
        return;
    Block block = event.getClickedBlock();
    if (isNullOrAir(block) || !block.getType().equals(Material.PLAYER_HEAD))
        return;
    Location radioHeadLoc = new Location(BearFair21.getWorld(), 16, 119, -19);
    ItemStack item = ItemUtils.getItem(block);
    // item.equals(Nexus.getHeadAPI().getItemHead("17150"))
    if (item.equals(ItemUtils.getItem(radioHeadLoc.getBlock()))) {
        event.setCancelled(true);
        RadioUserService userService = new RadioUserService();
        RadioUser radioUser = userService.get(event.getPlayer());
        Radio radio = radioUser.getServerRadio();
        if (radioUser.getVolume() == 100) {
            radioUser.setVolume((byte) 25);
            userService.save(radioUser);
        }
        if (radio == null || !radio.getId().equalsIgnoreCase("bearfair"))
            PlayerUtils.runCommand(event.getPlayer(), "radio join bearfair");
        else if (radio.getId().equalsIgnoreCase("bearfair"))
            PlayerUtils.runCommand(event.getPlayer(), "radio leave");
    }
}
Also used : RadioUser(gg.projecteden.nexus.models.radio.RadioUser) Block(org.bukkit.block.Block) Radio(gg.projecteden.nexus.models.radio.RadioConfig.Radio) ItemStack(org.bukkit.inventory.ItemStack) RadioUserService(gg.projecteden.nexus.models.radio.RadioUserService) Location(org.bukkit.Location) EventHandler(org.bukkit.event.EventHandler)

Example 2 with RadioUserService

use of gg.projecteden.nexus.models.radio.RadioUserService in project Nexus by ProjectEdenGG.

the class RadioFeature method onStop.

@Override
public void onStop() {
    RadioConfigService configService = new RadioConfigService();
    RadioConfig radioConfig = configService.get0();
    RadioUserService userService = new RadioUserService();
    RadioUser user;
    for (Radio radio : radioConfig.getRadios()) {
        if (radio.getSongPlayer() != null) {
            SongPlayer songPlayer = radio.getSongPlayer();
            for (UUID uuid : songPlayer.getPlayerUUIDs()) {
                user = userService.get(uuid);
                user.setServerRadioId(radio.getId());
                userService.save(user);
            }
            removeSongPlayer(radio.getSongPlayer());
        }
    }
    configService.save(radioConfig);
}
Also used : RadioConfigService(gg.projecteden.nexus.models.radio.RadioConfigService) PositionSongPlayer(com.xxmicloxx.NoteBlockAPI.songplayer.PositionSongPlayer) SongPlayer(com.xxmicloxx.NoteBlockAPI.songplayer.SongPlayer) RadioSongPlayer(com.xxmicloxx.NoteBlockAPI.songplayer.RadioSongPlayer) RadioUser(gg.projecteden.nexus.models.radio.RadioUser) RadioConfig(gg.projecteden.nexus.models.radio.RadioConfig) Radio(gg.projecteden.nexus.models.radio.RadioConfig.Radio) RadioUtils.isInRangeOfRadiusRadio(gg.projecteden.nexus.features.radio.RadioUtils.isInRangeOfRadiusRadio) UUID(java.util.UUID) RadioUserService(gg.projecteden.nexus.models.radio.RadioUserService)

Example 3 with RadioUserService

use of gg.projecteden.nexus.models.radio.RadioUserService in project Nexus by ProjectEdenGG.

the class Listeners method onPlayerJoin.

@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
    RadioUserService userService = new RadioUserService();
    RadioUser user = userService.get(event.getPlayer());
    Radio radio = user.getLastServerRadio();
    if (radio != null)
        addPlayer(user.getOnlinePlayer(), radio);
    user.getLeftRadiusRadios().clear();
}
Also used : RadioUser(gg.projecteden.nexus.models.radio.RadioUser) Radio(gg.projecteden.nexus.models.radio.RadioConfig.Radio) RadioUserService(gg.projecteden.nexus.models.radio.RadioUserService) EventHandler(org.bukkit.event.EventHandler)

Example 4 with RadioUserService

use of gg.projecteden.nexus.models.radio.RadioUserService in project Nexus by ProjectEdenGG.

the class RadioFeature method onStart.

@Override
public void onStart() {
    allSongs = new ArrayList<>();
    new Listeners();
    Tasks.async(() -> {
        File[] songs = songsDirectory.listFiles();
        if (songs != null) {
            for (File file : songs) allSongs.add(new RadioSong(file.getName(), file));
        }
        setupRadios();
        // Rejoin radios
        for (Player player : OnlinePlayers.getAll()) {
            RadioUser user = userService.get(player);
            if (user.getLastServerRadio() != null)
                RadioUtils.addPlayer(player, user.getLastServerRadio());
        }
        // Radio Particles Task
        Tasks.repeat(0, TickTime.TICK.x(5), () -> {
            for (Radio radio : getRadios()) {
                if (!radio.getType().equals(RadioType.RADIUS))
                    continue;
                if (!radio.isEnabled())
                    continue;
                if (!radio.isParticles())
                    continue;
                if (radio.getLocation() == null)
                    continue;
                new ParticleBuilder(Particle.NOTE).count(RandomUtils.randomInt(1, 3)).offset(0.25, 0.25, 0.25).location(radio.getLocation().add(0, RandomUtils.randomDouble(0.45, 0.75), 0)).spawn();
            }
        });
        // Radius Radio User Task
        RadioUserService service = new RadioUserService();
        Tasks.repeat(0, TickTime.SECOND.x(2), () -> {
            for (Radio radio : getRadios()) {
                if (!(radio.getSongPlayer() instanceof PositionSongPlayer))
                    continue;
                for (Player player : OnlinePlayers.getAll()) {
                    RadioUser user = service.get(player);
                    if (user.isMute())
                        continue;
                    if (user.getLeftRadiusRadios().contains(radio.getId()))
                        continue;
                    boolean isInRange = isInRangeOfRadiusRadio(player, radio);
                    boolean isListening = isListening(player, radio);
                    if (isInRange && !isListening) {
                        if (user.getServerRadio() != null)
                            removePlayer(player, user.getServerRadio());
                        addPlayer(player, radio);
                    } else if (!isInRange && isListening) {
                        removePlayer(player, radio);
                        if (user.getLastServerRadio() != null)
                            addPlayer(player, user.getLastServerRadio());
                    }
                }
            }
        });
    });
}
Also used : PositionSongPlayer(com.xxmicloxx.NoteBlockAPI.songplayer.PositionSongPlayer) RadioUtils.removePlayer(gg.projecteden.nexus.features.radio.RadioUtils.removePlayer) Player(org.bukkit.entity.Player) PositionSongPlayer(com.xxmicloxx.NoteBlockAPI.songplayer.PositionSongPlayer) SongPlayer(com.xxmicloxx.NoteBlockAPI.songplayer.SongPlayer) RadioUtils.addPlayer(gg.projecteden.nexus.features.radio.RadioUtils.addPlayer) RadioSongPlayer(com.xxmicloxx.NoteBlockAPI.songplayer.RadioSongPlayer) RadioUser(gg.projecteden.nexus.models.radio.RadioUser) Radio(gg.projecteden.nexus.models.radio.RadioConfig.Radio) RadioUtils.isInRangeOfRadiusRadio(gg.projecteden.nexus.features.radio.RadioUtils.isInRangeOfRadiusRadio) File(java.io.File) RadioSong(gg.projecteden.nexus.models.radio.RadioConfig.RadioSong) ParticleBuilder(com.destroystokyo.paper.ParticleBuilder) RadioUserService(gg.projecteden.nexus.models.radio.RadioUserService)

Aggregations

Radio (gg.projecteden.nexus.models.radio.RadioConfig.Radio)4 RadioUser (gg.projecteden.nexus.models.radio.RadioUser)4 RadioUserService (gg.projecteden.nexus.models.radio.RadioUserService)4 PositionSongPlayer (com.xxmicloxx.NoteBlockAPI.songplayer.PositionSongPlayer)2 RadioSongPlayer (com.xxmicloxx.NoteBlockAPI.songplayer.RadioSongPlayer)2 SongPlayer (com.xxmicloxx.NoteBlockAPI.songplayer.SongPlayer)2 RadioUtils.isInRangeOfRadiusRadio (gg.projecteden.nexus.features.radio.RadioUtils.isInRangeOfRadiusRadio)2 EventHandler (org.bukkit.event.EventHandler)2 ParticleBuilder (com.destroystokyo.paper.ParticleBuilder)1 RadioUtils.addPlayer (gg.projecteden.nexus.features.radio.RadioUtils.addPlayer)1 RadioUtils.removePlayer (gg.projecteden.nexus.features.radio.RadioUtils.removePlayer)1 RadioConfig (gg.projecteden.nexus.models.radio.RadioConfig)1 RadioSong (gg.projecteden.nexus.models.radio.RadioConfig.RadioSong)1 RadioConfigService (gg.projecteden.nexus.models.radio.RadioConfigService)1 File (java.io.File)1 UUID (java.util.UUID)1 Location (org.bukkit.Location)1 Block (org.bukkit.block.Block)1 Player (org.bukkit.entity.Player)1 ItemStack (org.bukkit.inventory.ItemStack)1