Skip to content

Commit

Permalink
First commit
Browse files Browse the repository at this point in the history
  • Loading branch information
devtoi committed Jan 18, 2011
0 parents commit 4f766bf
Show file tree
Hide file tree
Showing 6 changed files with 424 additions and 0 deletions.
Empty file added README
Empty file.
67 changes: 67 additions & 0 deletions src/org/bukkitmon/BMMob.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package org.bukkitmon;

import org.bukkit.entity.MobType;

public class BMMob {

private byte nrOfMobs = 1;
private MobType mobtype = MobType.CHICKEN;
private boolean rndAmount = false;
private boolean rndType = false;
private boolean active = true;
private byte maxAmount = 10;

public BMMob()
{

}

public boolean isRndAmount() {
return rndAmount;
}

public void setRndAmount(boolean rndAmount) {
this.rndAmount = rndAmount;
}

public boolean isRndType() {
return rndType;
}

public void setRndType(boolean rndType) {
this.rndType = rndType;
}

public byte getNrOfMobs() {
return nrOfMobs;
}

public void setNrOfMobs(byte nrOfMobs) {
this.nrOfMobs = nrOfMobs;
}

public MobType getMobtype() {
return mobtype;
}

public void setMobtype(MobType mobtype) {
this.mobtype = mobtype;
}

public boolean isActive() {
return active;
}

public void setActive(boolean active) {
this.active = active;
}

public byte getMaxAmount() {
return maxAmount;
}

public void setMaxAmount(byte maxAmount) {
this.maxAmount = maxAmount;
}

}
155 changes: 155 additions & 0 deletions src/org/bukkitmon/BMPListener.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
package org.bukkitmon;

import java.util.Hashtable;
import java.util.Random;

import org.bukkit.ChatColor;
import org.bukkit.entity.MobType;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerEggThrowEvent;
import org.bukkit.event.player.PlayerListener;
import org.bukkit.plugin.Plugin;

public class BMPListener extends PlayerListener {

private Plugin plugin;
private Hashtable<String, BMMob> ph = new Hashtable<String, BMMob>();
private Random rnd = new Random();
private String bmStr = ChatColor.GOLD + "[BukkitMon] " + ChatColor.YELLOW;
private tPermissions perms;

public BMPListener(BukkitMon plugin, tPermissions perms)
{
this.plugin = plugin;
this.perms = perms;
}

public void onPlayerEggThrow(PlayerEggThrowEvent event)
{
Player player = event.getPlayer();
if (!ph.containsKey(player.getName()))
ph.put(player.getName(), new BMMob());
BMMob bm = ph.get(player.getName());
if (bm.isActive())
{
MobType[] mts = MobType.values();
int rndint = rnd.nextInt(mts.length - 1);
if (bm.isRndAmount())
event.setNumHatches((byte)rnd.nextInt(bm.getMaxAmount()));
else
event.setNumHatches(bm.getNrOfMobs());
if (bm.isRndType())
event.setHatchType(mts[rndint]);
else
event.setHatchType(bm.getMobtype());
event.setHatching(true);
this.plugin.getServer().broadcastMessage(ChatColor.RED + "SPAWNING --> Watch out! " + ChatColor.YELLOW + player.getDisplayName() +
" spawned " + event.getNumHatches() + " " + event.getHatchType().getName() + "s");
}
else
event.setHatching(false);
}

public void onPlayerCommand(PlayerChatEvent event)
{
Player player = event.getPlayer();
String[] split = event.getMessage().split(" ");
if (split[0].equalsIgnoreCase("/bm"))
{
if (split.length >= 2)
{
if (!ph.containsKey(player.getName()))
ph.put(player.getName(), new BMMob());
BMMob bm = ph.get(player.getName());
if (split[1].equalsIgnoreCase("mobs") && this.perms.canPlayerUseCommand(player.getName(), "mobs"))
{
if (split.length >= 3)
{
try{
byte val = Byte.valueOf(split[2]);
if (val <= bm.getMaxAmount())
{
bm.setNrOfMobs(val);
player.sendMessage(this.bmStr + "You set the number of mobs to spawn to: " + val);
}
else
player.sendMessage(this.bmStr + val + " is more than the max amount");
}
catch (NumberFormatException nfe){
player.sendMessage(this.bmStr + "You need to define a valid number");
}
}
else
player.sendMessage(this.bmStr + "You need to define a number");
}
else if (split[1].equalsIgnoreCase("mobtype") && this.perms.canPlayerUseCommand(player.getName(), "mobtype"))
{
if (split.length >= 3)
{
MobType mt = MobType.valueOf(split[2].toUpperCase());
if (mt != null)
{
bm.setMobtype(mt);
player.sendMessage(this.bmStr + "You set the mob type to " + split[2]);
}
else
player.sendMessage(this.bmStr + "Invalid mobtype!");
}
else
player.sendMessage(this.bmStr + "You need to define a mobtype");
}
else if (split[1].equalsIgnoreCase("randomamount") && this.perms.canPlayerUseCommand(player.getName(), "randomamount"))
{
bm.setRndAmount(!bm.isRndAmount());
player.sendMessage(this.bmStr + "You set random amount to " + bm.isRndAmount());
}
else if (split[1].equalsIgnoreCase("randommob") && this.perms.canPlayerUseCommand(player.getName(), "randommob"))
{
bm.setRndAmount(!bm.isRndAmount());
player.sendMessage(this.bmStr + "You set randommob to " + bm.isRndAmount());
}
else if (split[1].equalsIgnoreCase("maxamount") && this.perms.canPlayerUseCommand(player.getName(), "maxamount"))
{
if (split.length >= 3)
{
try{
byte val = Byte.valueOf(split[2]);
bm.setMaxAmount(val);
player.sendMessage(this.bmStr + "You set the max amount of mobs to spawn to: " + val);
}
catch (NumberFormatException nfe){
player.sendMessage(this.bmStr + "You need to define a valid number");
}
}
else
player.sendMessage(this.bmStr + "You need to define a number");
}
else if (split[1].equalsIgnoreCase("activate") && this.perms.canPlayerUseCommand(player.getName(), "activate"))
{
bm.setActive(!bm.isActive());
if (bm.isActive())
player.sendMessage(this.bmStr + "You activated BukkitMon");
else
player.sendMessage(this.bmStr + "You deactivated BukkitMon");

}
else if (split[1].equalsIgnoreCase("list") && this.perms.canPlayerUseCommand(player.getName(), "list"))
{
player.sendMessage(ChatColor.RED + "BukkitMon commands:");
player.sendMessage(ChatColor.RED + "/bm mobs [#]" + ChatColor.YELLOW + " - Define how many mobs to spawn");
player.sendMessage(ChatColor.RED + "/bm mobtype [type]" + ChatColor.YELLOW + " - Define the mobtype to spawn");
player.sendMessage(ChatColor.RED + "/bm maxamount" + ChatColor.YELLOW + " - Defines the max amount of mobs you can spawn");
player.sendMessage(ChatColor.RED + "/bm randomamount" + ChatColor.YELLOW + " - Toggle random amount on/off");
player.sendMessage(ChatColor.RED + "/bm randommob" + ChatColor.YELLOW + " - Toggle random mob type on/off");
player.sendMessage(ChatColor.RED + "/bm activate" + ChatColor.YELLOW + " - Activates the BukkitMon eggs");
player.sendMessage(ChatColor.RED + "/bm list" + ChatColor.YELLOW + " - Shows a list of avaliable BukkitMon commands");
}
else
player.sendMessage(this.bmStr + "Unknown BukkitMon command");
}
else
player.sendMessage(this.bmStr + "Define a function please!");
}
}
}
56 changes: 56 additions & 0 deletions src/org/bukkitmon/BukkitMon.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package org.bukkitmon;

import java.io.File;
import java.util.logging.Logger;

import org.bukkit.Server;
import org.bukkit.event.Event;
import org.bukkit.event.Event.Priority;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.PluginLoader;
import org.bukkit.plugin.java.JavaPlugin;

public class BukkitMon extends JavaPlugin{

public static final Logger log = Logger.getLogger("Minecraft");
private String name = "BukkitMon";
private String version = "v0.1.0 (Bulbasaur)";
private tPermissions perms = new tPermissions("BukkitMon" + File.separator + "bukkitmon.perms");
private final BMPListener playerListener = new BMPListener(this, perms);

public BukkitMon(PluginLoader pluginLoader, Server instance,
PluginDescriptionFile desc, File folder, File plugin,
ClassLoader cLoader) {
super(pluginLoader, instance, desc, folder, plugin, cLoader);
this.registerEvents();
this.addCommands();
this.perms.loadPermissions();
this.perms.savePermissions();
}

public void onDisable() {
log.info(name + " " + version + " disabled!");
}

public void onEnable() {
log.info(name + " " + version + " enabled!");
}

public void addCommands()
{
perms.addCmd("mobs");
perms.addCmd("mobtype");
perms.addCmd("randomamount");
perms.addCmd("randomtype");
perms.addCmd("maxamount");
perms.addCmd("activate");
perms.addCmd("list");
}

public void registerEvents()
{
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_EGG_THROW, playerListener, Priority.Normal, this);
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_COMMAND, playerListener, Priority.Normal, this);
}

}
Loading

0 comments on commit 4f766bf

Please sign in to comment.