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] Kod pluginu nie działa


Rekomendowane odpowiedzi

Opublikowano

Witam.

Pomożecie mi naprawić kod pluginu? wszystko mam tak samo jak na tym filmie: https://www.youtube.com/watch?v=JF4H3mJgaMg

 

package me.Vampireq.Tutorial;

import org.bukkit.Bukkit;
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{    
        
    private static final String ChatColour = null;

    public void onEnable () {    
        getLogger().info("Plugin Enabled");    
    }

    public void onDisable() {
        getLogger().info("Plugin Disabled");
    }
    
    public boolean onCommand(CommandSender senrder, Command cmd, String label, String [] args) {    
        if(sender instanceof Player) {
            Player player = (Player) sender;    
            if(cmd.getName().equalsIgnoreCase("hub")){    
                String hub = "spawn " + player.getName();
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), hub)    
                player.sendMessage(ChatColor.AQUA + "Returning To Hub");    
                
            }
        }
        
    return false;
    }
    
}

Opublikowano

­    public boolean onCommand(CommandSender senrder, Command cmd, String label, String [] args) {    
         if(cmd.getName().equalsIgnoreCase("hub")){  

             if(sender instanceof Player) {
             Player player = (Player) sender;  

                String hub = "spawn " + player.getName();
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), hub)    
                player.sendMessage(ChatColor.AQUA + "Returning To Hub");    
                
            }
        }
        
    return false;
    }

 

Najpierw pisze się komendę, potem się sprawdza czy jest się graczem ;)

 

Nie wiem do końca jakby coś

 

Opublikowano

dodales komende do plugin.yml ?

tak.

@Edit tutaj masz config

 

name: Tutorial

author: Vampireq

version: 1

description: Allows User to Teleport To Spawn via /hub

main: me.VoidNation.Spawn2Hub.Main

commands:

  hub:

    description: Teleport To Hub!

Opublikowano

Nie wiem czy wiesz ale w onenable nie masz getCommand("hub").setExecutor(this). Pisane z pamieci na fonie

ok, jak będziesz to czy mógłbys wysłać poprawiony kod na pastebina? :)

Opublikowano
package me.Vampireq.Tutorial;

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;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements CommandExecutor{

    private static final String ChatColour = null;

    public void onEnable () {
        getLogger().info("Plugin Enabled");
        getCommand("hub").setExecutor(this);
    }

    public void onDisable() {
        getLogger().info("Plugin Disabled");
    }

    public boolean onCommand(CommandSender sender, Command cmd, String label, String [] args) {
        if(sender instanceof Player) {
            Player player = (Player) sender;
            if(cmd.getName().equalsIgnoreCase("hub")){
                String hub = "spawn " + player.getName();
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), hub)
                player.sendMessage(ChatColor.AQUA + "Returning To Hub");

            }
        }

        return false;
    }

}

Miałeś też błąd bo w parametrach nazwe zamiast sender miales senRder a dalej uzywales sender

Opublikowano
package me.Vampireq.Tutorial;

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;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements CommandExecutor{

    private static final String ChatColour = null;

    public void onEnable () {
        getLogger().info("Plugin Enabled");
        getCommand("hub").setExecutor(this);
    }

    public void onDisable() {
        getLogger().info("Plugin Disabled");
    }

    public boolean onCommand(CommandSender sender, Command cmd, String label, String [] args) {
        if(sender instanceof Player) {
            Player player = (Player) sender;
            if(cmd.getName().equalsIgnoreCase("hub")){
                String hub = "spawn " + player.getName();
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), hub)
                player.sendMessage(ChatColor.AQUA + "Returning To Hub");

            }
        }

        return false;
    }

}

Miałeś też błąd bo w parametrach nazwe zamiast sender miales senRder a dalej uzywales sender

 

 

Plot twist: Nie trzeba rejestrować komend jeśli używa się wbudowanego w główną klasę executora, bo jest on domyślnym commandExecutorem dla kazdej komendy.

I tym samym nie trzeba implementować CommandExecutora w głównej klasie, bo on juz tam domyślnie jest.

 

Plot twist#2:

Nie trzeba sprawdzać nazwy komendy jak jest tylko jedna, bo po co?

I tak samo można zwykłe equals, bo komenda nagle nie zmieni wielkości liter w nazwie.

 

 

A problem jest taki że masz źle ustawioną główną klasę w plugin.yml

 

Jak dalej nie działa, polecam wysyłać coś do konosli przy każdym wywołaniu komendy, jeszcze przed sprawdzeniem nazwy/gracza, w pierwszej linijce po onCommand i zobaczyć czy zaskoczy.

1438614356923701010629.png

 

Opublikowano

Plot twist: Nie trzeba rejestrować komend jeśli używa się wbudowanego w główną klasę executora, bo jest on domyślnym commandExecutorem dla kazdej komendy.

I tym samym nie trzeba implementować CommandExecutora w głównej klasie, bo on juz tam domyślnie jest.

 

Plot twist#2:

Nie trzeba sprawdzać nazwy komendy jak jest tylko jedna, bo po co?

I tak samo można zwykłe equals, bo komenda nagle nie zmieni wielkości liter w nazwie.

 

 

A problem jest taki że masz źle ustawioną główną klasę w plugin.yml

 

Jak dalej nie działa, polecam wysyłać coś do konosli przy każdym wywołaniu komendy, jeszcze przed sprawdzeniem nazwy/gracza, w pierwszej linijce po onCommand i zobaczyć czy zaskoczy.

dasz mi link z configiem i kodem na pastebina?

Opublikowano

dasz mi link z configiem i kodem na pastebina?

po prostu popraw plugin.yml tak by nazwa głównej klasy i jej pakietu/paczki/package zgadzała się z tą z twojego kodu...

1438614356923701010629.png

 

Opublikowano


Tak jak pisał GotoFinal w plugin.yml musisz mieć ścieżkę do klasy głównej.
Czyli:
2X2OHkw.jpg

main: pl.sb4u.Example
Opublikowano

czy tak trudno poprawić ci nazwę paczki w plugin.yml?

Tak by była taka sama jak w twoim kodzie?! w pierwszej linijce? + nazwa klasy?

Bo innego problemu tutaj raczej nie ma...

 

Więc nie rozumiem gdzie masz dalej problem.

1438614356923701010629.png

 

Opublikowano

czy tak trudno poprawić ci nazwę paczki w plugin.yml?

Tak by była taka sama jak w twoim kodzie?! w pierwszej linijce? + nazwa klasy?

Bo innego problemu tutaj raczej nie ma...

 

Więc nie rozumiem gdzie masz dalej problem.

ale ja nie rozumiem co w configu trzeba zrobic...

Opublikowano

podeslesz mi gotowy?

Zmieniasz wartość dla "main" ;)

 

package me.Vampireq.Tutorial;
public class Main extends JavaPlugin{

#AntyBlezur


Opublikowano

Zmieniasz wartość dla "main" ;)

 

package me.Vampireq.Tutorial;
public class Main extends JavaPlugin{

mam cos zamienic w kodzie? czy cos wyeksportowac?

@Edit ale ja przeciez mam napisane to public class Main

Opublikowano

mam cos zamienic w kodzie? czy cos wyeksportowac?

@Edit ale ja przeciez mam napisane to public class Main

JPRLD

Masz zmienić w pliku plugin.yml tą linijkę co zaczyna się na main, tą co aktualnie chyba masz: 

main: me.VoidNation.Spawn2Hub.Main

na taką by zgadzała się z TWOJĄ główną klasą....

main: {package}.{glównaKlasa}

Pakage masz podane w pierwszej linijce klasy, z główna klasa to po prsotu jej nazwa, public class ..., lub też nazwa pliku.

 

 

 

Jak nie potrafisz zrozumieć tak prostej rzeczy... nie bierz się za programowanie, bo to opiera się właśnie na rozwiązywaniu problemów, a ty od 2 dni nie potrafisz przeczytać 2 zdań ze zrozumieniem... jak ty zdałeś podstawówkę?

1438614356923701010629.png

 

Opublikowano

JPRLD

Masz zmienić w pliku plugin.yml tą linijkę co zaczyna się na main, tą co aktualnie chyba masz: 

main: me.VoidNation.Spawn2Hub.Main

na taką by zgadzała się z TWOJĄ główną klasą....

main: {package}.{glównaKlasa}

Pakage masz podane w pierwszej linijce klasy, z główna klasa to po prsotu jej nazwa, public class ..., lub też nazwa pliku.

 

 

 

Jak nie potrafisz zrozumieć tak prostej rzeczy... nie bierz się za programowanie, bo to opiera się właśnie na rozwiązywaniu problemów, a ty od 2 dni nie potrafisz przeczytać 2 zdań ze zrozumieniem... jak ty zdałeś podstawówkę?

skad wiesz, ze zdal podstawowke (moze dalej jest)?

 

@antyblezur

1. wejdz w chujclipse

2. na dole masz plugin.yml

3. kliknij na to

4. zaznacz main:

5. usun wszystko            (uproszczona wersja)

6. wpisz main: me.Vampireq.Tutorial.Main

7. zapisz

8. nie wkurwiaj juz nikogo, nie umiesz 1 rzeczy zmienic sam, a za programowanie sie bierzesz

 

paczki z malymi literami sie pisze

nie, nie pytaj sie jak to zrobic...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...