diff --git a/README.md b/README.md index 0baee97..6645350 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,4 @@ NoteBlockAPI ============ -See http://dev.bukkit.org/bukkit-plugins/noteblockapi/ for more info about NoteBlockAPI - -See "LICENSE" for license :) +Original NoteBlockAPI for spigot: http://dev.bukkit.org/bukkit-plugins/noteblockapi/ diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/FadeType.java b/src/main/java/com/creeperface/NoteBlockAPI/FadeType.java similarity index 52% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/FadeType.java rename to src/main/java/com/creeperface/NoteBlockAPI/FadeType.java index 4bc7191..6ffbf66 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/FadeType.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/FadeType.java @@ -1,4 +1,4 @@ -package com.xxmicloxx.NoteBlockAPI; +package com.creeperface.NoteBlockAPI; public enum FadeType { FADE_LINEAR diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/Interpolator.java b/src/main/java/com/creeperface/NoteBlockAPI/Interpolator.java similarity index 98% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/Interpolator.java rename to src/main/java/com/creeperface/NoteBlockAPI/Interpolator.java index 89fe163..d3e9d16 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/Interpolator.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/Interpolator.java @@ -1,4 +1,4 @@ -package com.xxmicloxx.NoteBlockAPI; +package com.creeperface.NoteBlockAPI; import java.util.Arrays; diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/Layer.java b/src/main/java/com/creeperface/NoteBlockAPI/Layer.java similarity index 95% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/Layer.java rename to src/main/java/com/creeperface/NoteBlockAPI/Layer.java index ce2dd26..b50733d 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/Layer.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/Layer.java @@ -1,4 +1,4 @@ -package com.xxmicloxx.NoteBlockAPI; +package com.creeperface.NoteBlockAPI; import java.util.HashMap; diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/NBSDecoder.java b/src/main/java/com/creeperface/NoteBlockAPI/NBSDecoder.java similarity index 99% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/NBSDecoder.java rename to src/main/java/com/creeperface/NoteBlockAPI/NBSDecoder.java index b7e6f08..3e5ff96 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/NBSDecoder.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/NBSDecoder.java @@ -1,4 +1,4 @@ -package com.xxmicloxx.NoteBlockAPI; +package com.creeperface.NoteBlockAPI; import java.io.*; import java.util.HashMap; diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/Note.java b/src/main/java/com/creeperface/NoteBlockAPI/Note.java similarity index 92% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/Note.java rename to src/main/java/com/creeperface/NoteBlockAPI/Note.java index d389eee..6d0da0f 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/Note.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/Note.java @@ -1,4 +1,4 @@ -package com.xxmicloxx.NoteBlockAPI; +package com.creeperface.NoteBlockAPI; public class Note { diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockPlayerMain.java b/src/main/java/com/creeperface/NoteBlockAPI/NoteBlockPlayerMain.java similarity index 83% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockPlayerMain.java rename to src/main/java/com/creeperface/NoteBlockAPI/NoteBlockPlayerMain.java index 2311e9d..81ed387 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockPlayerMain.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/NoteBlockPlayerMain.java @@ -1,13 +1,13 @@ -package com.xxmicloxx.NoteBlockAPI; +package com.creeperface.NoteBlockAPI; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; +import cn.nukkit.Player; +import cn.nukkit.Server; +import cn.nukkit.plugin.PluginBase; import java.util.ArrayList; import java.util.HashMap; -public class NoteBlockPlayerMain extends JavaPlugin { +public class NoteBlockPlayerMain extends PluginBase { public static NoteBlockPlayerMain plugin; public HashMap> playingSongs = new HashMap>(); @@ -46,6 +46,6 @@ public void onEnable() { @Override public void onDisable() { - Bukkit.getScheduler().cancelTasks(this); + Server.getInstance().getScheduler().cancelAllTasks(); } } diff --git a/src/main/java/com/creeperface/NoteBlockAPI/NoteBlockSongPlayer.java b/src/main/java/com/creeperface/NoteBlockAPI/NoteBlockSongPlayer.java new file mode 100644 index 0000000..0e4714f --- /dev/null +++ b/src/main/java/com/creeperface/NoteBlockAPI/NoteBlockSongPlayer.java @@ -0,0 +1,57 @@ +package com.creeperface.NoteBlockAPI; + +import cn.nukkit.Player; +import cn.nukkit.block.Block; +import cn.nukkit.item.Item; +import cn.nukkit.network.protocol.BlockEventPacket; + +/** + * Created with IntelliJ IDEA. + * User: ml + * Date: 07.12.13 + * Time: 12:56 + */ +public class NoteBlockSongPlayer extends SongPlayer { + private Block noteBlock; + + private BlockEventPacket pk = new BlockEventPacket(); + + public NoteBlockSongPlayer(Song song) { + super(song); + } + + public Block getNoteBlock() { + return noteBlock; + } + + public void setNoteBlock(Block noteBlock) { + this.noteBlock = noteBlock; + } + + @Override + public void playTick(Player p, int tick) { + if (noteBlock.getId() != Item.NOTEBLOCK) { + return; + } + if (p.getLevel().getId() != noteBlock.getLevel().getId()) { + // not in same world + return; + } + + for (Layer l : song.getLayerHashMap().values()) { + Note note = l.getNote(tick); + if (note == null) { + continue; + } + + pk.x = noteBlock.getFloorX(); + pk.y = noteBlock.getFloorY(); + pk.z = noteBlock.getFloorZ(); + + pk.case1 = note.getInstrument(); + pk.case2 = (int) NotePitch.getPitch(note.getKey() - 33); + + p.dataPacket(pk); + } + } +} diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/NotePitch.java b/src/main/java/com/creeperface/NoteBlockAPI/NotePitch.java similarity index 96% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/NotePitch.java rename to src/main/java/com/creeperface/NoteBlockAPI/NotePitch.java index 82aab87..39f9c2e 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/NotePitch.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/NotePitch.java @@ -1,4 +1,4 @@ -package com.xxmicloxx.NoteBlockAPI; +package com.creeperface.NoteBlockAPI; public enum NotePitch { diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/PositionSongPlayer.java b/src/main/java/com/creeperface/NoteBlockAPI/PositionSongPlayer.java similarity index 84% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/PositionSongPlayer.java rename to src/main/java/com/creeperface/NoteBlockAPI/PositionSongPlayer.java index d7ff27d..8afc82c 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/PositionSongPlayer.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/PositionSongPlayer.java @@ -1,7 +1,7 @@ -package com.xxmicloxx.NoteBlockAPI; +/*package com.creeperface.NoteBlockAPI; -import org.bukkit.Location; -import org.bukkit.entity.Player; +import cn.nukkit.Player; +import cn.nukkit.level.Location; public class PositionSongPlayer extends SongPlayer { @@ -21,7 +21,7 @@ public void setTargetLocation(Location targetLocation) { @Override public void playTick(Player p, int tick) { - if (!p.getWorld().getName().equals(targetLocation.getWorld().getName())) { + if (p.getLevel().getId() != targetLocation.getLevel().getId()) { // not in same world return; } @@ -38,4 +38,4 @@ public void playTick(Player p, int tick) { NotePitch.getPitch(note.getKey() - 33)); } } -} +}*/ diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/RadioSongPlayer.java b/src/main/java/com/creeperface/NoteBlockAPI/RadioSongPlayer.java similarity index 81% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/RadioSongPlayer.java rename to src/main/java/com/creeperface/NoteBlockAPI/RadioSongPlayer.java index 38164a0..1d0954c 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/RadioSongPlayer.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/RadioSongPlayer.java @@ -1,6 +1,7 @@ -package com.xxmicloxx.NoteBlockAPI; +/*package com.creeperface.NoteBlockAPI; -import org.bukkit.entity.Player; +import cn.nukkit.Player; +import cn.nukkit.network.protocol.BlockEventPacket; public class RadioSongPlayer extends SongPlayer { @@ -14,13 +15,17 @@ public void playTick(Player p, int tick) { for (Layer l : song.getLayerHashMap().values()) { Note note = l.getNote(tick); + if (note == null) { continue; } + + p.getLevel().addSound(); + p.playSound(p.getEyeLocation(), Instrument.getInstrument(note.getInstrument()), (l.getVolume() * (int) volume * (int) playerVolume) / 1000000f, NotePitch.getPitch(note.getKey() - 33)); } } -} +}*/ diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/Song.java b/src/main/java/com/creeperface/NoteBlockAPI/Song.java similarity index 98% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/Song.java rename to src/main/java/com/creeperface/NoteBlockAPI/Song.java index 9e3e671..ce8ea33 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/Song.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/Song.java @@ -1,4 +1,4 @@ -package com.xxmicloxx.NoteBlockAPI; +package com.creeperface.NoteBlockAPI; import java.io.File; import java.util.HashMap; diff --git a/src/main/java/com/creeperface/NoteBlockAPI/SongDestroyingEvent.java b/src/main/java/com/creeperface/NoteBlockAPI/SongDestroyingEvent.java new file mode 100644 index 0000000..066771d --- /dev/null +++ b/src/main/java/com/creeperface/NoteBlockAPI/SongDestroyingEvent.java @@ -0,0 +1,20 @@ +package com.creeperface.NoteBlockAPI; + +import cn.nukkit.event.Cancellable; +import cn.nukkit.event.HandlerList; +import cn.nukkit.event.plugin.PluginEvent; + +public class SongDestroyingEvent extends PluginEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + + private SongPlayer song; + + public SongDestroyingEvent(NoteBlockPlayerMain plugin, SongPlayer song) { + super(plugin); + this.song = song; + } + + public SongPlayer getSongPlayer() { + return song; + } +} diff --git a/src/main/java/com/creeperface/NoteBlockAPI/SongEndEvent.java b/src/main/java/com/creeperface/NoteBlockAPI/SongEndEvent.java new file mode 100644 index 0000000..e4d50dc --- /dev/null +++ b/src/main/java/com/creeperface/NoteBlockAPI/SongEndEvent.java @@ -0,0 +1,19 @@ +package com.creeperface.NoteBlockAPI; + +import cn.nukkit.event.HandlerList; +import cn.nukkit.event.plugin.PluginEvent; + +public class SongEndEvent extends PluginEvent { + + private static final HandlerList handlers = new HandlerList(); + private SongPlayer song; + + public SongEndEvent(NoteBlockPlayerMain plugin, SongPlayer song) { + super(plugin); + this.song = song; + } + + public SongPlayer getSongPlayer() { + return song; + } +} diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/SongPlayer.java b/src/main/java/com/creeperface/NoteBlockAPI/SongPlayer.java similarity index 89% rename from src/main/java/com/xxmicloxx/NoteBlockAPI/SongPlayer.java rename to src/main/java/com/creeperface/NoteBlockAPI/SongPlayer.java index fd8dba1..b5282ee 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/SongPlayer.java +++ b/src/main/java/com/creeperface/NoteBlockAPI/SongPlayer.java @@ -1,7 +1,7 @@ -package com.xxmicloxx.NoteBlockAPI; +package com.creeperface.NoteBlockAPI; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; +import cn.nukkit.Player; +import cn.nukkit.Server; import java.util.ArrayList; import java.util.Collections; @@ -90,15 +90,15 @@ public void run() { if (tick > song.getLength()) { playing = false; tick = -1; - SongEndEvent event = new SongEndEvent(SongPlayer.this); - Bukkit.getPluginManager().callEvent(event); + SongEndEvent event = new SongEndEvent(NoteBlockPlayerMain.plugin, SongPlayer.this); + Server.getInstance().getPluginManager().callEvent(event); if (autoDestroy) { destroy(); return; } } for (String s : playerList) { - Player p = Bukkit.getPlayerExact(s); + Player p = Server.getInstance().getPlayerExact(s); if (p == null) { // offline... continue; @@ -158,8 +158,8 @@ public void setAutoDestroy(boolean value) { public void destroy() { synchronized (this) { - SongDestroyingEvent event = new SongDestroyingEvent(this); - Bukkit.getPluginManager().callEvent(event); + SongDestroyingEvent event = new SongDestroyingEvent(NoteBlockPlayerMain.plugin, this); + Server.getInstance().getPluginManager().callEvent(event); //Bukkit.getScheduler().cancelTask(threadId); if (event.isCancelled()) { return; @@ -177,8 +177,8 @@ public boolean isPlaying() { public void setPlaying(boolean playing) { this.playing = playing; if (!playing) { - SongStoppedEvent event = new SongStoppedEvent(this); - Bukkit.getPluginManager().callEvent(event); + SongStoppedEvent event = new SongStoppedEvent(NoteBlockPlayerMain.plugin, this); + Server.getInstance().getPluginManager().callEvent(event); } } @@ -201,8 +201,8 @@ public void removePlayer(Player p) { songs.remove(this); NoteBlockPlayerMain.plugin.playingSongs.put(p.getName(), songs); if (playerList.isEmpty() && autoDestroy) { - SongEndEvent event = new SongEndEvent(this); - Bukkit.getPluginManager().callEvent(event); + SongEndEvent event = new SongEndEvent(NoteBlockPlayerMain.plugin, this); + Server.getInstance().getPluginManager().callEvent(event); destroy(); } } diff --git a/src/main/java/com/creeperface/NoteBlockAPI/SongStoppedEvent.java b/src/main/java/com/creeperface/NoteBlockAPI/SongStoppedEvent.java new file mode 100644 index 0000000..96df917 --- /dev/null +++ b/src/main/java/com/creeperface/NoteBlockAPI/SongStoppedEvent.java @@ -0,0 +1,19 @@ +package com.creeperface.NoteBlockAPI; + +import cn.nukkit.event.HandlerList; +import cn.nukkit.event.plugin.PluginEvent; + +public class SongStoppedEvent extends PluginEvent { + private static final HandlerList handlers = new HandlerList(); + + private SongPlayer song; + + public SongStoppedEvent(NoteBlockPlayerMain plugin, SongPlayer song) { + super(plugin); + this.song = song; + } + + public SongPlayer getSongPlayer() { + return song; + } +} diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/Instrument.java b/src/main/java/com/xxmicloxx/NoteBlockAPI/Instrument.java deleted file mode 100644 index 4da7785..0000000 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/Instrument.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.xxmicloxx.NoteBlockAPI; - -import org.bukkit.Sound; - -public class Instrument { - - public static Sound getInstrument(byte instrument) { - switch (instrument) { - case 0: - return Sound.BLOCK_NOTE_HARP; - case 1: - return Sound.BLOCK_NOTE_BASS; - case 2: - return Sound.BLOCK_NOTE_BASEDRUM; - case 3: - return Sound.BLOCK_NOTE_SNARE; - case 4: - return Sound.BLOCK_NOTE_HAT; - case 5: - return Sound.BLOCK_NOTE_PLING; - default: - return Sound.BLOCK_NOTE_HARP; - } - } - - public static org.bukkit.Instrument getBukkitInstrument(byte instrument) { - switch (instrument) { - case 0: - return org.bukkit.Instrument.PIANO; - case 1: - return org.bukkit.Instrument.BASS_GUITAR; - case 2: - return org.bukkit.Instrument.BASS_DRUM; - case 3: - return org.bukkit.Instrument.SNARE_DRUM; - case 4: - return org.bukkit.Instrument.STICKS; - /* No equivalent instrument for the sound. - case 5: - return org.bukkit.Instrument.PLING; */ - default: - return org.bukkit.Instrument.PIANO; - } - } -} diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockSongPlayer.java b/src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockSongPlayer.java deleted file mode 100644 index 6f2e30e..0000000 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockSongPlayer.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.xxmicloxx.NoteBlockAPI; - -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; - -/** - * Created with IntelliJ IDEA. - * User: ml - * Date: 07.12.13 - * Time: 12:56 - */ -public class NoteBlockSongPlayer extends SongPlayer { - private Block noteBlock; - - public NoteBlockSongPlayer(Song song) { - super(song); - } - - public Block getNoteBlock() { - return noteBlock; - } - - public void setNoteBlock(Block noteBlock) { - this.noteBlock = noteBlock; - } - - @Override - public void playTick(Player p, int tick) { - if (noteBlock.getType() != Material.NOTE_BLOCK) { - return; - } - if (!p.getWorld().getName().equals(noteBlock.getWorld().getName())) { - // not in same world - return; - } - byte playerVolume = NoteBlockPlayerMain.getPlayerVolume(p); - - for (Layer l : song.getLayerHashMap().values()) { - Note note = l.getNote(tick); - if (note == null) { - continue; - } - p.playNote(noteBlock.getLocation(), Instrument.getBukkitInstrument(note.getInstrument()), - new org.bukkit.Note(note.getKey() - 33)); - p.playSound(noteBlock.getLocation(), - Instrument.getInstrument(note.getInstrument()), - (l.getVolume() * (int) volume * (int) playerVolume) / 1000000f, - NotePitch.getPitch(note.getKey() - 33)); - } - } -} diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/SongDestroyingEvent.java b/src/main/java/com/xxmicloxx/NoteBlockAPI/SongDestroyingEvent.java deleted file mode 100644 index 562dcb5..0000000 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/SongDestroyingEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.xxmicloxx.NoteBlockAPI; - -import org.bukkit.event.Cancellable; -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -public class SongDestroyingEvent extends Event implements Cancellable { - - private static final HandlerList handlers = new HandlerList(); - private SongPlayer song; - private boolean cancelled = false; - - public SongDestroyingEvent(SongPlayer song) { - this.song = song; - } - - public static HandlerList getHandlerList() { - return handlers; - } - - public SongPlayer getSongPlayer() { - return song; - } - - public HandlerList getHandlers() { - return handlers; - } - - @Override - public boolean isCancelled() { - return cancelled; - } - - @Override - public void setCancelled(boolean arg0) { - cancelled = arg0; - } -} diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/SongEndEvent.java b/src/main/java/com/xxmicloxx/NoteBlockAPI/SongEndEvent.java deleted file mode 100644 index ab9fd13..0000000 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/SongEndEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.xxmicloxx.NoteBlockAPI; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -public class SongEndEvent extends Event { - - private static final HandlerList handlers = new HandlerList(); - private SongPlayer song; - - public SongEndEvent(SongPlayer song) { - this.song = song; - } - - public static HandlerList getHandlerList() { - return handlers; - } - - public SongPlayer getSongPlayer() { - return song; - } - - public HandlerList getHandlers() { - return handlers; - } -} diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/SongStoppedEvent.java b/src/main/java/com/xxmicloxx/NoteBlockAPI/SongStoppedEvent.java deleted file mode 100644 index c25764e..0000000 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/SongStoppedEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.xxmicloxx.NoteBlockAPI; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -public class SongStoppedEvent extends Event { - - private static final HandlerList handlers = new HandlerList(); - private SongPlayer song; - - public SongStoppedEvent(SongPlayer song) { - this.song = song; - } - - public static HandlerList getHandlerList() { - return handlers; - } - - public SongPlayer getSongPlayer() { - return song; - } - - public HandlerList getHandlers() { - return handlers; - } -} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index f313ce5..3c8fe76 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: NoteBlockAPI -main: com.xxmicloxx.NoteBlockAPI.NoteBlockPlayerMain -version: 1.2.0 - -description: a developer interface to play nbs-files ingame -authors: [xxmicloxx, michidk] \ No newline at end of file +main: com.creeperface.NoteBlockAPI.NoteBlockPlayerMain +version: 1.0.0 +api: ["1.0.0"] +description: a developer interface to play nbs-files ingame ported from spigot +authors: CreeperFace