Skip to content

Instantly share code, notes, and snippets.

@Dinner1111
Created July 30, 2013 20:13
Show Gist options
  • Save Dinner1111/6116492 to your computer and use it in GitHub Desktop.
Save Dinner1111/6116492 to your computer and use it in GitHub Desktop.
Rainbows!
package io.github.Dinner1111.Rainbows;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Color;
import org.bukkit.FireworkEffect;
import org.bukkit.Material;
import org.bukkit.FireworkEffect.Type;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Firework;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.FireworkMeta;
import org.bukkit.inventory.meta.LeatherArmorMeta;
public class Change {
public int fNum = 0;
public int index = 0;
public List<Color> Colors = new ArrayList<Color>();
public List<Material> leatherArm = new ArrayList<Material>();
public LeatherArmorMeta lColor;
public int n;
public Change()
{
Colors.add(Color.RED);
Colors.add(Color.BLUE);
Colors.add(Color.AQUA);
Colors.add(Color.LIME);
Colors.add(Color.ORANGE);
Colors.add(Color.YELLOW);
Colors.add(Color.TEAL);
leatherArm.add(Material.LEATHER_CHESTPLATE);
leatherArm.add(Material.LEATHER_BOOTS);
leatherArm.add(Material.LEATHER_HELMET);
leatherArm.add(Material.LEATHER_LEGGINGS);
ItemStack arm = new ItemStack(299, 1);
lColor = (LeatherArmorMeta) arm.getItemMeta();
n = 0;
}
public void colorize(Player[] p)
{
boolean change = false;
lColor.setColor(Colors.get(n));
for (Player player : p) {
if (player.getInventory().getHelmet() != null)
if (leatherArm.contains(player
.getInventory().getHelmet()
.getType()))
player.getInventory()
.getHelmet()
.setItemMeta(lColor);
change = true;
if (player.getInventory()
.getChestplate() != null)
if (leatherArm.contains(player
.getInventory()
.getChestplate().getType()))
player.getInventory()
.getChestplate()
.setItemMeta(lColor);
change = true;
if (player.getInventory().getLeggings() != null)
if (leatherArm.contains(player
.getInventory()
.getLeggings().getType()))
player.getInventory()
.getLeggings()
.setItemMeta(lColor);
change = true;
if (player.getInventory().getBoots() != null)
if (leatherArm.contains(player
.getInventory().getBoots()
.getType()))
player.getInventory()
.getBoots()
.setItemMeta(lColor);
change = true;
if (change == true) {
Firework firework = (Firework) player.getWorld().spawnEntity(player.getLocation(), EntityType.FIREWORK);
FireworkMeta fireworkMeta = firework.getFireworkMeta();
fireworkMeta.setPower(1);
if (fNum == 7) {
fNum = 0;
} else {
switch (fNum) {
case 0:
fireworkMeta.addEffect(FireworkEffect.builder()
.with(Type.BALL)
.trail(true)
.flicker(true)
.withColor(Color.RED)
.build());
fNum = fNum + 1;
break;
case 1:
fireworkMeta.addEffect(FireworkEffect.builder()
.with(Type.BALL)
.trail(true)
.flicker(true)
.withColor(Color.BLUE)
.build());
fNum = fNum + 1;
break;
case 2:
fireworkMeta.addEffect(FireworkEffect.builder()
.with(Type.BALL)
.trail(true)
.flicker(true)
.withColor(Color.AQUA)
.build());
fNum = fNum + 1;
break;
case 3:
fireworkMeta.addEffect(FireworkEffect.builder()
.with(Type.BALL)
.trail(true)
.flicker(true)
.withColor(Color.LIME)
.build());
fNum = fNum + 1;
break;
case 4:
fireworkMeta.addEffect(FireworkEffect.builder()
.with(Type.BALL)
.trail(true)
.flicker(true)
.withColor(Color.ORANGE)
.build());
fNum = fNum + 1;
break;
case 5:
fireworkMeta.addEffect(FireworkEffect.builder()
.with(Type.BALL)
.trail(true)
.flicker(true)
.withColor(Color.YELLOW)
.build());
fNum = fNum + 1;
break;
case 6:
fireworkMeta.addEffect(FireworkEffect.builder()
.with(Type.BALL)
.trail(true)
.flicker(true)
.withColor(Color.TEAL)
.build());
fNum = fNum + 1;
break;
default:
fireworkMeta.addEffect(FireworkEffect.builder()
.with(Type.BALL)
.trail(true)
.flicker(true)
.withColor(Color.RED)
.build());
fNum = fNum + 1;
break;
}
}
firework.setFireworkMeta(fireworkMeta);
change = false;
}
}
}
}
name: Rainbows
main: io.github.Dinner1111.Rainbows.Rainbow
version: 1.0.0
commands:
rainbow:
description: Make a colorful rainbow in every aspect.
usage: /rainbow
permission: Rainbows.rainbow
permission-message: Sorry, you don't have permission to make rainbows.
package io.github.Dinner1111.Rainbows;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.command.*;
public final class Rainbow extends JavaPlugin implements CommandExecutor {
int n = 0;
int task;
Change c = new Change();
boolean running = false;
@Override
public void onEnable() {
getLogger().info("Rainbow has made a colorful entrance.");
getCommand("rainbow").setExecutor(this);
}
@Override
public void onDisable() {
getLogger().info("Rainbow has run out of color.");
}
public boolean onCommand(CommandSender sender, Command cmd, String label,
String[] args) {
if (cmd.getName().equalsIgnoreCase("rainbow")) {
if (sender.hasPermission("Rainbows.rainbow")) {
if(!running)
{
running = !running;
sender.sendMessage(ChatColor.GREEN + "Starting the Rainbow loop!");
task = Bukkit.getServer().getScheduler()
.scheduleSyncRepeatingTask(this, new Runnable() {
public void run() {
c.colorize(Bukkit.getOnlinePlayers());
c.n++;
if (c.n > 6)
c.n = 0;
}
}, 0, 40);
}
else
{
sender.sendMessage(ChatColor.GREEN + "Stoping the Rainbow loop!");
Bukkit.getServer().getScheduler().cancelTask(task);
running = !running;
}
}
}
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment