You know... With metadata you could mark that it's a pee block so it could be treated differently. For example you could save the name of the person who peed it, and then when others click on it they could get a message that says "This is <username>'s pee"
Does anyone more experienced have time for this? Because of other things I don't have sufficient time to offer to this plugin at the moment, and I fear I would not do it justice. I will try to do it in my spare time, but I don't have much for now, hopefully it will soon change Ne0nx3r0 I was thinking of having the block remove after a certain amount of time, so that you don't just walk into a pee field, and also so make it so that players couldn't pick them up but I like the sound of that ^^ Regards, Ben
Hi guys, I am new to making plugins and found this a good opportunity to learn some basics. I named the plugin "PeePoo" and this is what I have right now: - /pee Makes players pee (Places yellow wool under them) - /poo Makes players poo (Places brown wool under them) - peepoo.pee Allows players to pee - peepoo.poo Allows players to poo - Old blocks return in 10 seconds - When you try to peepoo on another peepoo block you'll get a message: <Player> already did a peepee/poopoo here What I want to add: - PeePoo on a chest or something similar will get the contents deleted. So a peepoo item blacklist would do? - PeePoo can't be broken and picked up. - Clicking on a block also dislplays who peepoo'ed there I could not imagine my first plugin would be something like this
Okay I will set the status to resolved Pindagus hey could you put this plugin in the plugin submissions forum please also include my server ip? EDIT by Moderator: merged posts, please use the edit button instead of double posting.
fiesty Sorry, but I am not going to advertise your server in a plugin submission forum. I'll give you credits instead.
I don't know what you mean by sending client-side messages, but you cannot send a message to the client from the server unless it is a chat event.
Can I get credit for the poo part? Lol Can you also make it announce when a player poops/pees? Heres proof:
I never said you could post it here, but since you did I want to make clear that this plugin is just experimental and may not be perfect and could break things. (I assume it will not break anything, but you never know..) I tried to get it approved, but they found it an inappropriate plugin.
Its not inappropriate, its just different! Maybe change the name to RealCraft and say that the plugin makes ingame Minecraft more realistic! Then they will /approve!
/approve . LOL But if the name would be RealCraft, then will be need to add some other features, like puke. ADD PUKE
I've reviewed it. While I am not a bukkitdev staff, I believe I have sufficient knowledge of java and plugin development to review it. This contains no op-exploits/viruses.
Wow, I see this the same day I see this on Minecraft Forums - http://www.minecraftforum.net/topic/400275-147sspsmppoopv13/ Why is everyone wanting to create bodily functions in Minecraft all of a sudden? Lol.
It looks legit... Code:java package me.pindagus.plugins.peepoo; import java.io.PrintStream;import java.util.HashMap;import java.util.LinkedList;import java.util.Map;import org.bukkit.ChatColor;import org.bukkit.Server;import org.bukkit.block.BlockState;import org.bukkit.command.Command;import org.bukkit.command.CommandSender;import org.bukkit.entity.Player;import org.bukkit.event.Listener;import org.bukkit.plugin.PluginManager;import org.bukkit.plugin.java.JavaPlugin;import org.bukkit.scheduler.BukkitScheduler; public class PeePoo extends JavaPlugin implements Listener{ private PeePooListener peepooListener = new PeePooListener(this); private Map<Player, LinkedList<BlockState>> blocks = new HashMap(); public void onDisable() { System.out.println(this + " is disabled."); } public void onEnable() { getServer().getPluginManager().registerEvents(this, this); } public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if ((command.getName().equalsIgnoreCase("pee")) || (command.getName().equalsIgnoreCase("poo"))) { if ((sender instanceof Player)) { if (args.length == 0) { Player player = (Player)sender; this.peepooListener.setPeePoo(player, command.getName()); return true; } if (args.length > 0) { sender.sendMessage(ChatColor.RED + "This command cannot be used with arguments!"); return true; } } else { System.out.println("This command can only be used by players!"); return true; } } return false; } public LinkedList<BlockState> getBlockList(Player player) { LinkedList result = (LinkedList)this.blocks.get(player); if (result == null) { result = new LinkedList(); this.blocks.put(player, result); } return result; } public void saveBlock(Player player, BlockState block) { LinkedList list = getBlockList(player); list.add(block); } public void restoreBlock(final Player player) { final PeePoo plugin = this; Runnable restore = new Runnable() { public void run() { LinkedList list = PeePoo.this.getBlockList(player); BlockState old = (BlockState)list.removeFirst(); old.removeMetadata("PeePoo", plugin); old.removeMetadata("PeePooOwner", plugin); old.update(true); } }; getServer().getScheduler().scheduleSyncDelayedTask(this, restore, 200L); }}