Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.cyberiantiger.minecraft</groupId>
<artifactId>ducktrails</artifactId>
<version>1.8-SNAPSHOT</version>
<version>1.9-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.number>${user.name}</project.build.number>
Expand Down Expand Up @@ -57,7 +57,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.9-R0.1-cybertiger</version>
<version>1.13-R0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<distributionManagement>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,8 @@

import java.util.ArrayList;
import java.util.List;
import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.Sound;

import org.bukkit.*;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import static org.cyberiantiger.minecraft.ducktrails.Note.*;
Expand Down Expand Up @@ -190,7 +188,7 @@ public class DragonbornEffectHandler extends MusicalEffectHandler {
}
}
}
public static final Track DRAGONBORN_TRACK1 = new Track(Sound.BLOCK_NOTE_HARP) {
public static final Track DRAGONBORN_TRACK1 = new Track(Sound.BLOCK_NOTE_BLOCK_HARP) {
@Override
public Note getNote(int offset) {
return MELODY_DRAGONBORN1[offset % MELODY_DRAGONBORN1.length];
Expand All @@ -201,7 +199,7 @@ public float getVolume(int offset) {
return 1f;
}
};
public static final Track DRAGONBORN_TRACK2 = new Track(Sound.BLOCK_NOTE_HARP) {
public static final Track DRAGONBORN_TRACK2 = new Track(Sound.BLOCK_NOTE_BLOCK_HARP) {
@Override
public Note getNote(int offset) {
return MELODY_DRAGONBORN2[offset % MELODY_DRAGONBORN2.length];
Expand All @@ -212,14 +210,14 @@ public float getVolume(int offset) {
return 1f;
}
};
private final Effect effect;
private final Particle effect;
private final List<Vector> redCircle = new ArrayList<Vector>(20);
private final List<Vector> blueCircle = new ArrayList<Vector>(20);
private final Vector red = new Vector(1f, 0f, 0f);
private final Vector blue = new Vector(0.01f, 0f, 1f);
private double rotate = 0.0D;

public DragonbornEffectHandler(Effect effect) {
public DragonbornEffectHandler(Particle effect) {
super(new Track[]{DRAGONBORN_TRACK1, DRAGONBORN_TRACK2});
this.effect = effect;
for (int i = 0; i < 20; i++) {
Expand Down Expand Up @@ -256,14 +254,16 @@ protected void showEffectInternal(Server server, Player player, Location from, L
Vector xx = new Vector(cos * x.getX() - sin * y.getX(), cos * x.getY() - sin * y.getY(), cos * x.getZ() - sin * y.getZ());
Vector yy = new Vector(sin * x.getX() + cos * y.getX(), sin * x.getY() + cos * y.getY(), sin * x.getZ() + cos * y.getZ());
for (Vector v : redCircle) {
translateEffect(server, player, to, v, 1f, 0f, 0f, xx, yy, z);
Object data = new Particle.DustOptions(Color.RED,.7f);
translateEffect(server, player, to, v, 1f, 0f, 0f, xx, yy, z,data);
}
for (Vector v : blueCircle) {
translateEffect(server, player, to, v, 0.01f, 0f, 1f, xx, yy, z);
Object data = new Particle.DustOptions(Color.BLUE,.7f);
translateEffect(server, player, to, v, 0.01f, 0f, 1f, xx, yy, z,data);
}
}

private void translateEffect(Server server, Player player, Location base, Vector offset, float r, float g, float b, Vector x, Vector y, Vector z) {
private void translateEffect(Server server, Player player, Location base, Vector offset, float r, float g, float b, Vector x, Vector y, Vector z, Object data) {
base = base.clone();
Vector realOffset = new Vector(
offset.getX() * x.getX() + offset.getY() * y.getX() + offset.getZ() * z.getX(),
Expand All @@ -272,7 +272,7 @@ private void translateEffect(Server server, Player player, Location base, Vector
base.setX(realOffset.getX() + base.getX());
base.setY(realOffset.getY() + base.getY());
base.setZ(realOffset.getZ() + base.getZ());
sendEffect(server, player, effect, base, r, g, b, 1f, 256f, 0);
sendEffect(server, player, effect, base, r, g, b, 1f, 256f, 0,1,data);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,7 @@
*/
package org.cyberiantiger.minecraft.ducktrails;

import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.Sound;
import org.bukkit.*;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import static org.cyberiantiger.minecraft.ducktrails.Note.*;
Expand Down Expand Up @@ -83,7 +80,7 @@ public class DuckTalesEffectHandler extends MusicalEffectHandler {
}
}
}
public static final Track DUCK_TALES_TRACK = new Track(Sound.BLOCK_NOTE_HARP) {
public static final Track DUCK_TALES_TRACK = new Track(Sound.BLOCK_NOTE_BLOCK_HARP) {
@Override
public Note getNote(int offset) {
return DUCK_TALES_MELODY[offset % DUCK_TALES_MELODY.length];
Expand All @@ -96,10 +93,10 @@ public float getVolume(int offset) {
};
private final double cos45 = Math.cos(Math.PI / 4);
private final double sin45 = Math.sin(Math.PI / 4);
private final Effect effect;
private final Particle effect;
private double rotate = 0.0D;

public DuckTalesEffectHandler(Effect effect) {
public DuckTalesEffectHandler(Particle effect) {
super(new Track[]{DUCK_TALES_TRACK});
this.effect = effect;
}
Expand Down Expand Up @@ -147,7 +144,8 @@ private void translateEffect(Server server, Player player, Location base, Vector
base.setX(realOffset.getX() + base.getX());
base.setY(realOffset.getY() + base.getY());
base.setZ(realOffset.getZ() + base.getZ());
sendEffect(server, player, effect, base, (float) realVelocity.getX(), (float) realVelocity.getY(), (float) realVelocity.getZ(), 1f, 256f, 0);
Object data = new Particle.DustOptions(Color.ORANGE,.7f);
sendEffect(server, player, effect, base, (float) realVelocity.getX(), (float) realVelocity.getY(), (float) realVelocity.getZ(), 1f, 256f,0,1,data);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@
package org.cyberiantiger.minecraft.ducktrails;

import java.util.concurrent.atomic.AtomicReference;
import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.Server;

import org.bukkit.*;
import org.bukkit.entity.Player;

/**
Expand All @@ -27,20 +26,20 @@
*/
public abstract class EffectHandler {
public static class BasicEffectHandler extends EffectHandler {
private final Effect effect;
private final Particle effect;
private final float dx;
private final float dy;
private final float dz;
private final float v;
private final int id;
private final int data;
private final Object data;
private final int count;

public BasicEffectHandler(Effect effect, float dx, float dy, float dz, float v, int count) {
this(effect, dx, dy, dz, v, 0, 0, count);
public BasicEffectHandler(Particle effect, float dx, float dy, float dz, float v, int count) {
this(effect, dx, dy, dz, v, 0, null, count);
}

public BasicEffectHandler(Effect effect, float dx, float dy, float dz, float v, int id, int data, int count) {
public BasicEffectHandler(Particle effect, float dx, float dy, float dz, float v, int id, Object data, int count) {
this.effect = effect;
this.dx = dx;
this.dy = dy;
Expand All @@ -59,10 +58,10 @@ protected void showEffectInternal(Server server, Player player, Location from, L

public static class RainbowEffectHandler extends EffectHandler {
private float hue = 0f;
private final Effect effect;
private final Particle effect;


public RainbowEffectHandler(Effect effect) {
public RainbowEffectHandler(Particle effect) {
this.effect = effect;
}

Expand All @@ -73,7 +72,8 @@ protected void showEffectInternal(Server server, Player player, Location from, L
float g = ((argb >> 8) & 0xff) / 255f;
float b = (argb & 0xff) / 255f;
r = r == 0f ? 0.001f : r;
sendEffect(server, player, effect, to, r, g, b, 1f, 256f, 0);
Object data = new Particle.DustOptions(Color.fromRGB((int)r,(int)g,(int)b),(int)r);
sendEffect(server, player, effect, to, r, g, b, 1f, 256f, 1,1,data);
hue = hue + 0.01f;
hue = hue >= 1f ? 0f : hue;
}
Expand All @@ -92,16 +92,23 @@ public final void showEffect(Server server, Player player, Location from, Locati
showEffectInternal(server, player, from, to);
}

protected void sendEffect(Server server, Player source, Effect effect, Location loc, float dx, float dy, float dz, float v, float r, int count) {
sendEffect(server, source, effect, loc, dx, dy, dz, v, r, count, 0, 0);
protected void sendEffect(Server server, Player source, Particle effect, Location loc, float dx, float dy, float dz, float v, float r, int count) {
sendEffect(server, source, effect, loc, dx, dy, dz, v, r, count, 0, null);
}

protected void sendEffect(Server server, Player source, Effect effect, Location loc, float dx, float dy, float dz, float v, float r, int count, int id, int data) {
protected void sendEffect(Server server, Player source, Particle effect, Location loc, float dx, float dy, float dz, float v, float r, int count, int id, Object data) {
float r2 = r*r;
for (Player p : server.getOnlinePlayers()) {
if (p.getWorld() == loc.getWorld() && p.canSee(source)) {
if (loc.distanceSquared(p.getLocation()) < r2) {
p.spigot().playEffect(loc, effect, id, data, dx, dy, dz, v, count, (int)r);
// v,
if(data == null){
p.getWorld().spawnParticle(effect, loc, count, dx, dy, dz);
}
else {
p.getWorld().spawnParticle(effect, loc, count, dx, dy, dz, data);
}
//p.spigot().playEffect(loc, effect, id, data, dx, dy, dz, v, count, (int)r);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,8 @@

import java.util.ArrayList;
import java.util.List;
import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.Sound;

import org.bukkit.*;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import static org.cyberiantiger.minecraft.ducktrails.Note.*;
Expand Down Expand Up @@ -85,7 +83,7 @@ public class GameOfThronesEffectHandler extends MusicalEffectHandler {
}
}
}
public static final Track GAME_OF_THRONES_TRACK = new Track(Sound.BLOCK_NOTE_HARP) {
public static final Track GAME_OF_THRONES_TRACK = new Track(Sound.BLOCK_NOTE_BLOCK_HARP) {
@Override
public Note getNote(int offset) {
return GAME_OF_THRONES_MELODY[offset % GAME_OF_THRONES_MELODY.length];
Expand All @@ -106,6 +104,8 @@ public float getVolume(int offset) {
private double rotateY;
private double rotateZ;

private boolean bColor = true;

public GameOfThronesEffectHandler() {
super(new Track[]{GAME_OF_THRONES_TRACK});
for (int i = 0; i < 40; i++) {
Expand Down Expand Up @@ -143,16 +143,26 @@ protected void showEffectInternal(Server server, Player player, Location from, L
Matrix3 m = Matrix3.rotateX(rotateX).multiply(Matrix3.rotateY(rotateY)).multiply(Matrix3.rotateZ(rotateZ));
Location base = new Location(to.getWorld(), position.getX(), position.getY() + 1.5, position.getZ());
for (Vector p : particleRing) {
translateEffect(server, player, base, Effect.COLOURED_DUST, p, 1.0f, 215f/255f, 0f, m);
//This was COLOURED_DUST. I can not find that anymore. I am not sure what it turned into.
Object data;
if(bColor) {
data = new Particle.DustOptions(Color.BLACK, .7f);
bColor = false;
}
else {
data = new Particle.DustOptions(Color.GRAY, .7f);
bColor = true;
}
translateEffect(server, player, base, Particle.REDSTONE, p, 1.0f, 215f/255f, 0f, m,data);
}
}

private void translateEffect(Server server, Player player, Location base, Effect effect, Vector offset, float r, float g, float b, Matrix3 m) {
private void translateEffect(Server server, Player player, Location base, Particle effect, Vector offset, float r, float g, float b, Matrix3 m,Object data) {
base = base.clone();
Vector realOffset = m.multiply(offset);
base.setX(realOffset.getX() + base.getX());
base.setY(realOffset.getY() + base.getY());
base.setZ(realOffset.getZ() + base.getZ());
sendEffect(server, player, effect, base, r, g, b, 1f, 256f, 0);
sendEffect(server, player, effect, base, r, g, b, 1f, 256f, 0,1,data);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
import java.util.TreeSet;
import java.util.WeakHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
Expand All @@ -57,6 +59,8 @@
public class Main extends JavaPlugin implements Listener {
public static final String LOCALE_FILE = "locale.properties";

public static Logger log;

private class MusicRunnable extends TimerTask {
public void run() {
long nanoTime = System.nanoTime();
Expand Down Expand Up @@ -179,6 +183,8 @@ public void onEnable() {
timer = new Timer();
timerTask = new MusicRunnable();
timer.scheduleAtFixedRate(timerTask, 0L, 160L);

log = this.getLogger();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,7 @@
*/
package org.cyberiantiger.minecraft.ducktrails;

import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.Sound;
import org.bukkit.*;
import org.bukkit.entity.Player;
import static org.cyberiantiger.minecraft.ducktrails.Note.*;

Expand Down Expand Up @@ -50,7 +47,7 @@ public class NyanEffectHandler extends MusicalEffectHandler {
B3, null, B3, A_SHARP3, B3, F_SHARP3, G_SHARP3, B3, E4, D_SHARP4, E4, F_SHARP4, B3, null, A_SHARP3, null,
// Bar 11
B3, null, B3, A_SHARP3, B3, F_SHARP3, G_SHARP3, B3, E4, D_SHARP4, E4, F_SHARP4, B4, C_SHARP4,};
public static final Track NYAN_CAT_MELODY_TRACK = new Track(Sound.BLOCK_NOTE_HARP) {
public static final Track NYAN_CAT_MELODY_TRACK = new Track(Sound.BLOCK_NOTE_BLOCK_HARP) {
@Override
public Note getNote(int offset) {
// LOOP to 3rd Bar (16 notes per bar)
Expand All @@ -70,23 +67,31 @@ public float getVolume(int offset) {
}
};

private final Effect effect;
private final Particle effect;

public NyanEffectHandler(Effect effect) {
public NyanEffectHandler(Particle effect) {
super(new Track[]{NYAN_CAT_MELODY_TRACK});
this.effect = effect;
}

@Override
protected void showEffectInternal(Server server, Player player, Location from, Location to) {
super.showEffectInternal(server, player, from, to);
for (int i = 0; i < 20; i++) {
double frequency = .3;

for (int i = 0; i < 32; i++) {
int argb = java.awt.Color.HSBtoRGB(i / 20.0f, 1f, 1f);
float r = ((argb >> 16) & 0xff) / 255f;
float g = ((argb >> 8) & 0xff) / 255f;
float b = (argb & 0xff) / 255f;
r = r == 0f ? 0.001f : r;
sendEffect(server, player, effect, to, r, g, b, 1f, 256f, 0);

double red = Math.sin(frequency*i + 0) * 127 + 128;
double green = Math.sin(frequency*i + 2) * 127 + 128;
double blue = Math.sin(frequency*i + 4) * 127 + 128;

Object data = new Particle.DustOptions(Color.fromRGB((int)red,(int)green,(int)blue),.7f);
sendEffect(server, player, effect, to, b, g, r, 1f, 256f, 0,1,data);
to.setY(to.getY() + 2 / 20d);
}
}
Expand Down
Loading