Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Minecraft > Minecraft Guides & Strategies
You last visited: Today at 07:02

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Bukkit - Erste Schritte zur Plugin-programmierung

Discussion on Bukkit - Erste Schritte zur Plugin-programmierung within the Minecraft Guides & Strategies forum part of the Minecraft category.

Reply
 
Old 04/14/2013, 00:22   #31
 
elite*gold: 30
Join Date: Oct 2012
Posts: 80
Received Thanks: 0
Abend,
ich versche mich nun auch schon ne weile an einem Plugin. Es gibt weder beim kompilieren noch in der Mc-Konsole fehler. Wenn ich jedoch den befehl aus meinen Plugin aufrufe kommt nur der befehl zurück im chat. Also wenn ich /pickup mache kommt "/pickup" zurück
die plugin.yml und die mail class habe ich nach der anleitung von wiki.bukkit.org angelegt.
plugin.yml
Code:
commands:
name: JumpBlock by Henry
main: de.mccrafting.JumpBlock.JumpBlock
version: 0.1

commands:
   pickup:
      description: Aufheben von Items Aktivieren/deaktivieren
      usage: /<command>
      permission: jumpblock.pickup
      permission-message: You don't have <permission>
permissions:
    jumpblock.pickup:
        description: Erlaubt den zugriff auch /pickup
        default: op
Die MAin class:
Code:
package de.mccrafting.testplugin;

import java.util.logging.Logger;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class testplugin extends JavaPlugin {
	Logger log = Logger.getLogger("Minecraft");
	public void onEnable(){ 
		log.info("Testplugin aktiviert");	 
	}
	 
	public void onDisable(){
		log.info("testplugin deaktiviert");	
	 
	}
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String args){
    	if(cmd.getName().equalsIgnoreCase("pickup")){
    		if (!(sender instanceof Player)) {
    	           sender.sendMessage(ChatColor.RED + "Befehl kann nur als Spieler ausgeführt werden!");
    	           return true;
    	        }
    	        Player player = (Player) sender;
    	        if(player.getCanPickupItems() == true){
        	        player.setCanPickupItems(false);
        	        if (sender instanceof Player) {
         	        	player.sendMessage("PickUp Deaktiviert");;
         	        	return false;
         	        }
    	        } else {
    	        	player.setCanPickupItems(true);
        	        if (sender instanceof Player) {
         	        	player.sendMessage("PickUp Aktiviert");;
         	        	return false;
         	        }    	        	
    	        }
    		return true;
    	}
    	return false; 
    }


}
MfG
renamed-123 is offline  
Old 04/14/2013, 00:38   #32
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,543
Received Thanks: 1,424
Zeile 32 und 38 sind die Ursache.

Wenn false zurück kommt, sendet Bukkit den "usage"-Text.
ComputerBaer is offline  
Old 04/14/2013, 01:21   #33
 
elite*gold: 30
Join Date: Oct 2012
Posts: 80
Received Thanks: 0
Danke für die Hilfreiche info, jedoch hat sich nix geändert obwohl überall return true steht...

MfG
renamed-123 is offline  
Old 04/14/2013, 01:57   #34
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,543
Received Thanks: 1,424
Hmm, das sollte eigentlich nurnoch passieren, wenn er Zeile 43 erreicht, was aber eigentlich nicht passieren sollte.

Kommen denn die Nachrichten ("PickUp Aktiviert", "PickUp Deaktiviert")? Oder werden die nicht angezeigt?

Die Abfragen in Zeile 30 und 36 sind überflüssig, weil du alle "Nicht-Spieler" ohnehin schon Zeile 23 rauswirfst.

Edit:
Kann es sein, dass du einen Error verursachst? In dem Fall könnte Bukkit auch den "usage"-Text ausgeben.

Du hats aufjedenfall einen Fehler in Zeile 21. Die "args" sind ein String-Array und kein String.
Richtig wäre also: "... , String[] args) ..."
ComputerBaer is offline  
Old 04/15/2013, 19:43   #35
 
elite*gold: 30
Join Date: Oct 2012
Posts: 80
Received Thanks: 0
Vielen Dank, an dem String[] lag es.
Vielen lieben Dank.
MfG
renamed-123 is offline  
Old 05/02/2013, 23:54   #36
 
elite*gold: 0
Join Date: Apr 2013
Posts: 4
Received Thanks: 0
Thank you so much !
Jege is offline  
Old 05/10/2013, 05:51   #37
 
SinSay's Avatar
 
elite*gold: 120
Join Date: May 2013
Posts: 419
Received Thanks: 208
das tut hilft bestimmt viele hast du gut gemacht
SinSay is offline  
Old 05/12/2013, 18:21   #38
 
elite*gold: 0
Join Date: Mar 2013
Posts: 297
Received Thanks: 7
Wenn du es noch nicht im Text ist könntest du ja es nochmal Editieren und einfügen wie man eine .jar draus erstellt!
SBotDE is offline  
Old 05/12/2013, 18:33   #39
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,543
Received Thanks: 1,424
Quote:
Originally Posted by SBotDE View Post
Wenn du es noch nicht im Text ist könntest du ja es nochmal Editieren und einfügen wie man eine .jar draus erstellt!
Zu faul zum Lesen, oder?
Sieh dir mal die letzte Zeile ganz genau an.
ComputerBaer is offline  
Old 06/17/2013, 20:27   #40
 
elite*gold: 0
Join Date: Nov 2012
Posts: 2
Received Thanks: 0
Ab wann beginnt der erste Befehl ?:

public boolean onCommand(CommandSender sender, Command cmd, String commandlabel,String[] args)
{
boolean succeed = false;
Player player = (Player) sender;
if(cmd.getName().equalsIgnoreCase("hello"))
{

player.sendMessage("Willkommen auf meinem Server " + player.getName());

succeed = true;
}
if(cmd.getName().equalsIgnoreCase("heal"))
{
player.setHealth(20);
}
if(cmd.getName().equalsIgnoreCase("storm"))
{
Block targetblock = player.getTargetBlock(null, 50);
targetblock.getWorld().strikeLightning(targetblock .getLocation());
succeed = true;
}
return succeed;
}
}
crazyyzarc is offline  
Old 06/17/2013, 21:37   #41
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,543
Received Thanks: 1,424
Was ist das für eine Frage? Ich hoffe ich verstehe sie richtig.
Der erste Befehl (hello) beginnt in Zeile 4, bzw. Zeile 6.
ComputerBaer is offline  
Old 01/06/2014, 16:46   #42
 
elite*gold: 0
Join Date: Dec 2012
Posts: 4
Received Thanks: 0
Question Hey habe ein neues Problem

wenn der Spieler Joint soll er gekickt werden doch es passiert garnix



JoinListener:


package Listeners;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;

import Data.Data;

public class WartungListener implements Listener {


@EventHandler
public void onPlayerJoin(PlayerJoinEvent e)
{


Player player = (Player) e;
if (Data.Wartungen = true)
player.kickPlayer("ServerWartungen");
{

}
}
}



Wartungen enabler:

package Commands;

import Data.Data;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class Wartungen
implements CommandExecutor
{
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
if (sender.hasPermission("change.Wartungen")) {
if (Data.Wartungen) {
Data.Wartungen = false;
Bukkit.broadcastMessage(Data.SysPrefix + ChatColor.AQUA + " Wartungen wurde deaktiviert!");
return true;
}
Data.Wartungen = true;
for (Player target : Bukkit.getOnlinePlayers())
target.kickPlayer(ChatColor.BLUE + "WartungsArbeiten");
Bukkit.broadcastMessage(Data.SysPrefix + ChatColor.AQUA + " Wartungen wurde aktiviert!");
return true;
}

sender.sendMessage(Data.NoPerm);

return true;
}
}



Ixxiflo is offline  
Old 01/06/2014, 16:55   #43
Administrator
 
lordsill's Avatar
 
elite*gold: 25736
Join Date: May 2011
Posts: 20,744
Received Thanks: 2,288
Einfach ein anderes Event nehmen

also statt:

Code:
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e)
{


Player player = (Player) e;
if (Data.Wartungen = true)
player.kickPlayer("ServerWartungen");
{

}
}
}
eher:

Code:
@EventHandler
public void onPlayerLogin(PlayerLoginEvent event)
{
if(Data.Wartungen)
{
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server Wartung");
}
}
zudem "(Player) e" fehlerhaft ist, da ein Event sich nicht in ein Player casten läst.
Bei meinem Code wird nun einfach jeder gekickt, der dem Server joinen möchte

Edit:
geht natürlich auch auf deine Art und Weiße, aber dann so:

Code:
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e)
{
Player player = e.getPlayer();
if (Data.Wartungen == true)
{
player.kickPlayer("ServerWartungen");
}
}
lordsill is offline  
Old 01/06/2014, 19:48   #44
 
elite*gold: 0
Join Date: Dec 2012
Posts: 4
Received Thanks: 0
Question

Jetzt gehts wenn ihr den source haben wollt oder das Plugin mit globalmute wartungsmodus dann schreibt mich an
Ixxiflo is offline  
Old 02/22/2014, 19:41   #45


 
elite*gold: 220
The Black Market: 106/0/0
Join Date: Dec 2009
Posts: 1,048
Received Thanks: 438
Eine Frage: Warum erstellst du eine "Player Variable" für CommandSender sender, wenn sender bereits wie ein Player gehandhabt wird? Zumindest für sendMessage musst du sender nicht zu Player casten. Einfach sender.sendMessage("bla") benutzen.

Ansonsten spitze Einstieg für Beginner.
i0N is offline  
Reply

Tags
bukkit, minecraft, plugin, programmieren


Similar Threads Similar Threads
[FAQ] Erste Schritte bei Problemen
10/10/2011 - Hardware Discussions / Questions - 5 Replies
Hallo liebes epvp Forum :) PC-Probleme kommen unweigerlich vor. Um dir, dem Hilfesuchenden und uns, den Helfenden eine schnelle Hilfe zu ermöglichen haben Lordac und ich diese kleine FAQ zusammengestellt. Diese soll dir neben der Möglichkeit zur Selbsthilfe auch helfen die nötigen Informationen für einen Thread zu finden. Inhaltsverzeichnis 1. Selbsthilfe 1.1 Temperaturen 1.2 Hardware
[C#] Erste Schritte
09/30/2011 - Coding Tutorials - 8 Replies
Vorwort: Von nun an habt ihr die Möglichkeit euren Wissenshorizont zu erweitern. Ich werde , auf Wunsch einiger User, euch C# ein wenig näher bringen, sodass ihr zumindest ein solides Grundwissen aufbauen könnt. Die nachfolgenden TuT's bauen aufeinander auf und sind deshalb am besten nacheinander zu lesen. Fortgeschrittene Programmierer können jedoch weiter vorran stoßen und sich bereits mit schwereren Themen befassen. So aber nun genug geredet. Es kann losgehen...
Biete kostenlose, maßgeschneiderte Bukkit-Plugin-Programmierung
09/18/2011 - Minecraft - 6 Replies
Hallo, ich biete euch an, dass ich euch Plugins programmiere, die ihr für euren Server so braucht, aber einfach nicht passend findet. Würde die Plugins dann natürlich maßgeschneidert nach Wunsch rausgeben. Gegen Spenden habe ich natürlich auch nichts. In die Anfrage sollte rein: - Art des Plugins - geschätzter Aufwand - alle Features und Funktionen
Help for Pirox [erste Schritte]
06/04/2011 - WoW Bots - 3 Replies
Liebe Elitepvpers Cummunity Ich suche wen der mir bei meinen ersten Schritten mit Pirox pvp tool helfen kann. Grundsätzlich geht es um die einstellung des Bots, das ganze wäre super wenn es über eine Sprachsoftware zb. Skype, Ts3, ventrilo ... laufen würde. Sollte ein Entgelt für eure Dienste fällig werden bitte ich euch euer Angebot per PN an mich zu schicken. mfg stormy /over and out
Erste Schritte für BG-Stamm-Leader
01/11/2010 - World of Warcraft - 5 Replies
Hey, ich bräuchte mal etwas Hilfe, die Gilde in der ich momentan bin will eine Stammgruppe für BGs und haben mich dafür zum Leader ernannt weil ich die größte allgemeine Erfahrung im PVP in der Gilde hab. Leider hab ich keine Erfahrung wenns drum geht die Gruppe anzuführen, meinen alten BG Leader kann ich auch nicht um Rat fragen weil der grad im Urlaub ist :) Falls mir jemand paar Tipps geben könnte wäre es nett! PS: ich brauche keine Taktiken und auch kein "TS benutzen du kackboon"...



All times are GMT +1. The time now is 07:02.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.