Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Pisanie pluginów ;)


Rekomendowane odpowiedzi

Opublikowano

Witam, dzisiaj podjąłem się wyzwania napisania plg na chat, lecz mam pewnien problem, chciałem sprawdzić czy message na chat działają lecz nic się nie wyświetlało.

Pisałem komendę przykładowo "/cos" ale jeśli ją napisałem to na chacie się nic nie wyświetlało, w konsolii ani  w eclipse żadnych błędów nie było.

Prosze o pomoc.

Opublikowano

Bez podanego kodu, nie możemy ci pomóc. 

 

Podaj błędy z eclipse, plik z logami serwerowymi, oraz kod "pluginu".

Zrobiłem wszystko jak ten koleś z filmu (podałem w górnym poście) nie ma żadnych błędów w eclipse i konsolii, tylko że nie wyświetla sie nic na chacie jak napisze komende.

Opublikowano

Czy ja wiem, lepiej napisz skrypt, jest o wiele łatwiej. 

Skryptów nie używam -_-

 

Oto mój kod:

package me.niveros.tools;

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 Main extends JavaPlugin{

	@Override
	public void onEnable(){
		System.out.println("Plugin jest ON");
	}
	
	@Override
	public void onDisable(){
		System.out.println("Plugin jest OFF");
	}
	
	
	public boolean onCommand(CommandSender sender, String commandLabel, Command cmd, String[] args){
		Player player = (Player) sender;
		
		
		
		
		if(commandLabel.equalsIgnoreCase("wyslij")){
			if(args.length == 0){
			player.sendMessage(ChatColor.GOLD + "Wyslano!");
		    }
			if(args.length == 1){
				if(args[0].equalsIgnoreCase("wiadomosc"))
					player.sendMessage("§2Wyslano wiadomosc!");
				}
		
		
		
		
		
		}
		return false;
		
}
}

A tutaj macie plugin.yml:

name: NivTools
main: me.niveros.tools.Main
version: 1.0
description: Plugin by Niveros

commands:
    wyslij:
        description: Wyslano 
Opublikowano

chłopie WTF, nie jesteś na forum wróżbitów, skoro Ci nie działa to gdzieś się jebłeś.. Podaj ten kod to ktoś Ci pomoże, albo idź na forum wróżbitów.

Opublikowano

1. zle zrobiony boolean 

2. komende sie pobiera przez cmd.getname().equals("komenda")

3.             if(args.length == 0)  nie wiem co ty tym chciaales osiagnac 

Opublikowano

1. zle zrobiony boolean 

2. komende sie pobiera przez cmd.getname().equals("komenda")

3.             if(args.length == 0)  nie wiem co ty tym chciaales osiagnac 

 

1. zle zrobiony boolean 

2. komende sie pobiera przez cmd.getname().equals("komenda")

3.             if(args.length == 0)  nie wiem co ty tym chciaales osiagnac 

To gdzie mam wpisać to "cmd.getname().equals("komenda")" ?

Bo nwm

Opublikowano

zamiast commandlabela ...

 

Może zacznijmy od tego ze kolega nie zarejestrowal nigdzie tej komendy.

 

Po drugie to czy uzyje cmd.getName czy labe.equals nie ma znaczenia.

784091427630431250239.png


Regulamin sygnatur


Opublikowano

Może zacznijmy od tego ze kolega nie zarejestrowal nigdzie tej komendy.

 

Po drugie to czy uzyje cmd.getName czy labe.equals nie ma znaczenia.

W plugin.yml zajerestrowana, skoro robi nie przez command executor nie wydaje Mi się by trzeba było ją rejestrować.

@topic

Nie ucz się robić maniany, zaczanij od command executorów już skoro robisz te swoje "toolsy" ;)

Rada na przyszłość, uczcie się najpierw javy, potem z poradników do bukkita, to tak jakbyście się uczyli liczyć liczby, a potem dopiero samych cyfr.

Brak returnów, po wykonaniu czynności z komendy. btw, uczyłeś się z poradnika gościa, która sam popełnił bład, w dodatku był zdziwiony.

Opublikowano
public boolean onCommand(CommandSender sender, String commandLabel, Command cmd, String[] args){

źle...

@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){

tak powinno być

1438614356923701010629.png

 

Opublikowano

Może zacznijmy od tego ze kolega nie zarejestrowal nigdzie tej komendy.

 

Po drugie to czy uzyje cmd.getName czy labe.equals nie ma znaczenia.

jest znaczenie ...

przy aliasach komenda moze nie dzialac pseudo znawco 

Opublikowano

@GotoFinal, panie, override potrzebny jak piąte koło u wozu, to się generuje przy używaniu funkcji Override/Implement Methods... Do tego ta zmieniona kolejność, ŁAŁ

Kod działający poprawnie:
 

package me.niveros.tools;

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

public class Main
  extends JavaPlugin
  {

    public void onEnable(){
		System.out.println("Plugin jest ON");
	}
	
	public void onDisable(){
		System.out.println("Plugin jest OFF");
	}
	
	
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
	{
		getCommand("wyslij").setExecutor(this);
			if (args.length == 0){
			sender.sendMessage(ChatColor.GOLD + "Wyslano!");
		    }
			if (args.length == 1){
				if(args[0].equalsIgnoreCase("wiadomosc"))
					sender.sendMessage("§2Wyslano wiadomosc!");
				}
		return false;	
}
}
Opublikowano

 

@GotoFinal, panie, override potrzebny jak piąte koło u wozu, to się generuje przy używaniu funkcji Override/Implement Methods... Do tego ta zmieniona kolejność, ŁAŁ

 

Kod działający poprawnie:

 

package me.niveros.tools;

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

public class Main
  extends JavaPlugin
  {

    public void onEnable(){
		System.out.println("Plugin jest ON");
	}
	
	public void onDisable(){
		System.out.println("Plugin jest OFF");
	}
	
	
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
	{
		getCommand("wyslij").setExecutor(this);
			if (args.length == 0){
			sender.sendMessage(ChatColor.GOLD + "Wyslano!");
		    }
			if (args.length == 1){
				if(args[0].equalsIgnoreCase("wiadomosc"))
					sender.sendMessage("§2Wyslano wiadomosc!");
				}
		return false;	
}
}

a teraz mi powiedz od kiedy sie w oncommand uzywa setexecutor 

Opublikowano

 

@GotoFinal, panie, override potrzebny jak piąte koło u wozu, to się generuje przy używaniu funkcji Override/Implement Methods... Do tego ta zmieniona kolejność, ŁAŁ

 

Kod działający poprawnie:

 

umiesz czytać? czy coś nie tak ?

 

Czyli powiadasz że metoda:

public boolean onCommand(CommandSender sender, String commandLabel, Command cmd, String[] args){

jest poprawna?

Czyli że kolejność argumentów w metodzie nie ma znaczenia bo to bez róznicy czy dasz to co wyżej, czy poprawnie:

@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
 
?
Ciekawe...
I właśnie po to jest override, by widzieć jaka metoda jest nadpisywana, i by mieć pewność że robi się to poprawnie. 
 
Ludzie, nowość! od teraz w javie kolejność argumentów nie ma znaczenia! Bóg kontroluje program i sam układa argumenty tak jak trzeba! od teraz można robić wszystko!
 
 
Może pomyśl nad powrotem do javastart? ;)
 
 
Problem jest właśnie z kolejnością tych argumentów...

1438614356923701010629.png

 

Opublikowano

 

@GotoFinal, panie, override potrzebny jak piąte koło u wozu, to się generuje przy używaniu funkcji Override/Implement Methods... Do tego ta zmieniona kolejność, ŁAŁ

 

Kod działający poprawnie:

 

package me.niveros.tools;

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

public class Main
  extends JavaPlugin
  {

    public void onEnable(){
		System.out.println("Plugin jest ON");
	}
	
	public void onDisable(){
		System.out.println("Plugin jest OFF");
	}
	
	
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
	{
		getCommand("wyslij").setExecutor(this);
			if (args.length == 0){
			sender.sendMessage(ChatColor.GOLD + "Wyslano!");
		    }
			if (args.length == 1){
				if(args[0].equalsIgnoreCase("wiadomosc"))
					sender.sendMessage("§2Wyslano wiadomosc!");
				}
		return false;	
}
}

Halo ?

getCommand("wyslij").setExecutor(this);

Na c**j CI to tam za przeproszeniem ?

Opublikowano

jest znaczenie ...

przy aliasach komenda moze nie dzialac pseudo znawco 

 

 

Masz racje nie będzie działać jak zabierze się do tego taki idiota jak Ty.

784091427630431250239.png


Regulamin sygnatur


Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...