Page 1 of 1

Java Tutorial: Bukkit Plugin Development (permissions) [part

Posted: Fri Sep 09, 2011 10:43 pm
by Brandon
So i did from tut 1 to tut 4 but on part 4 from the tutorial i got a error when starting up my server :(

this is my server.log
2011-09-10 00:30:32 [INFO] Starting minecraft server version Beta 1.7.3
2011-09-10 00:30:32 [INFO] Loading properties
2011-09-10 00:30:32 [INFO] Starting Minecraft server on *:25565
2011-09-10 00:30:32 [WARNING] **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
2011-09-10 00:30:32 [WARNING] The server will make no attempt to authenticate usernames. Beware.
2011-09-10 00:30:32 [WARNING] While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
2011-09-10 00:30:32 [WARNING] To change this, set "online-mode" to "true" in the server.settings file.
2011-09-10 00:30:32 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-980-g4ed23b1-b1060jnks (MC: 1.7.3)
2011-09-10 00:30:32 [SEVERE] Could not load 'plugins\TNTNotifier.jar' in folder 'plugins': 
while scanning for the next token
found character 	'\t' that cannot start any token
 in "<reader>", line 5, column 1:
    	tntnotifier.allow-tnt:
    ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:360)
	at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:183)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:592)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:163)
	at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:132)
	at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
	at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122)
	at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105)
	at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:124)
	at org.yaml.snakeyaml.Yaml.load(Yaml.java:264)
	at org.yaml.snakeyaml.Yaml.load(Yaml.java:250)
	at org.bukkit.plugin.PluginDescriptionFile.<init>(PluginDescriptionFile.java:36)
	at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:69)
	at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:213)
	at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:136)
	at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:143)
	at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:110)
	at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:51)
	at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:133)
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:337)
	at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
2011-09-10 00:30:32 [INFO] Preparing level "world"
2011-09-10 00:30:33 [INFO] Preparing start region for level 0 (Seed: -5757995853447927496)
2011-09-10 00:30:34 [INFO] Preparing start region for level 1 (Seed: 466512814878660727)
2011-09-10 00:30:34 [INFO] Preparing spawn area: 0%
2011-09-10 00:30:34 [INFO] PermissionsBukkit v1.1 is now enabled
2011-09-10 00:30:34 [INFO] Server permissions file permissions.yml is empty, ignoring it
2011-09-10 00:30:34 [INFO] Done (0,200s)! For help, type "help" or "?"
2011-09-10 00:30:36 [INFO] Stopping the server..
2011-09-10 00:30:36 [INFO] Stopping server
2011-09-10 00:30:36 [INFO] PermissionsBukkit v1.1 is now disabled
2011-09-10 00:30:36 [INFO] Saving chunks
2011-09-10 00:30:36 [INFO] Stopping server
this is plugin.yml
name: TNTNotifier
version: 0.2
main: Minecraft.TNTNotifier
permissions:
	tntnotifier.allow-tnt:
	    description: Laat het gebruik van TNT toe.
	    default: op
this is TNTNotifFierBlockListener
package Minecraft;

import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockListener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.inventory.ItemStack;

public class TNTNotifFierBlockListener extends BlockListener{
	
	private TNTNotifier plugin;
	
	public TNTNotifFierBlockListener(TNTNotifier instance){
		this.plugin = instance;
	}
	
	public void onBlockPlace(BlockPlaceEvent event){
		if (event.isCancelled()) return;
		
		Block block = event.getBlock();
		Player player = event.getPlayer();
		
		if (block.getType() == Material.TNT && player.hasPermission("tntnotifier.allow-tnt") == false){
			block.setType(Material.CAKE_BLOCK);
			
			player.sendMessage(ChatColor.DARK_RED + "U bent niet bevoegd om TNT te plaatsen op deze server.");
		
			plugin.logMessage(player.getName() + " Plaatste een TNT blok bij " + block.getX() + "," + block.getY() + "," + block.getZ() + ".");
		}
	}
	
	public void onBlockBreak(BlockBreakEvent event){
		if (event.isCancelled()) return;
		
		Block block = event.getBlock();
		
		if (block.getType() == Material.TNT){
			event.setCancelled(true);
			block.setType(Material.AIR);
			
			block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.CAKE, 1));
		}
	}

}
en this is TNTNotifier
package Minecraft;

import java.util.logging.Logger;

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

public class TNTNotifier extends JavaPlugin{
	
	private Logger log = Logger.getLogger("Minecraft");
	
	private TNTNotifFierBlockListener blockListener = new TNTNotifFierBlockListener(this);
	
	public void onEnable() {
		PluginManager pm = this.getServer().getPluginManager();
		
		pm.registerEvent(Event.Type.BLOCK_PLACE, this.blockListener, Priority.Highest, this);
		pm.registerEvent(Event.Type.BLOCK_BREAK, this.blockListener, Priority.Highest, this);
		
		this.logMessage("ingeschakeld.");
	}

	public void onDisable() {
		this.logMessage("uitgeschakeld.");
	}
	
	protected void logMessage(String msg){
		PluginDescriptionFile pdFile = this.getDescription();
		this.log.info(pdFile.getName() + " " + pdFile.getVersion() + ": " + msg);
	}
	
}

Re: Java Tutorial: Bukkit Plugin Development (permissions) [

Posted: Sat Sep 10, 2011 12:44 pm
by jacek
You can't use tabs in .yml files, you have to use 4 spaces to indent. You code looks fine just fix the config files :D

Also, please use the code tags when posting code on the forum !

Re: Java Tutorial: Bukkit Plugin Development (permissions) [

Posted: Sat Sep 10, 2011 8:19 pm
by Brandon
Thx that was the prob when is the next video ? :) :) :) :)

Re: Java Tutorial: Bukkit Plugin Development (permissions) [

Posted: Mon Sep 12, 2011 12:15 pm
by jacek
Brandon wrote:Thx that was the prob when is the next video ? :) :) :) :)
Today if I get time :D