Skip to content

Instantly share code, notes, and snippets.

@codermason
Last active January 3, 2016 19:49
Show Gist options
  • Save codermason/8511334 to your computer and use it in GitHub Desktop.
Save codermason/8511334 to your computer and use it in GitHub Desktop.
requested by a Bukkit forums user :)
package me.mason.randomsound;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class RSW extends JavaPlugin implements Listener {
private List<Sound> sounds = new ArrayList<Sound>();
public void onEnable() {
for(Sound s : Sound.values())
sounds.add(s);
this.getServer().getPluginManager().registerEvents(this, this);
String author = this.getDescription().getAuthors().get(0);
Bukkit.getConsoleSender().sendMessage("[RSW] RandomSoundWeapon created by "+author+" has been enabled!");
}
public Sound getRandomSound() {
return sounds.get(new Random().nextInt(sounds.size() - 1));
}
@EventHandler
public void onHit(EntityDamageByEntityEvent e) {
if(e.getDamager() == null || !(e.getDamager() instanceof Player) || !(e.getEntity() instanceof Player)) return;
Player damager = (Player) e.getDamager();
Material cat = Material.getMaterial(2257); //TODO get material by string rather integers
if(damager.getItemInHand().getType() == cat)
e.getEntity().getLocation().getWorld().playSound(e.getEntity().getLocation(), getRandomSound(), 1, 1);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment