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 w pluginie.


Zientez

Rekomendowane odpowiedzi

Opublikowano

Elo ten plugin mi nie dziala, chodzi mi o to, aby po wpisaniu /gildia zaloz <nazwa> wykonywala sie komenda /f create <nazwa>  (jak cos komenda /gildia dziala). Proszę także dodać alias do komendy /gildia czyli, aby po wpisaniu /g wykonywało sie to co po wpisaniu /gildia. Prosilbym takze o dodanie mozliwosci kolorkow w configu '&4tekst'. Za poprawienie pluginu dam like!

 

Main:

 

package me.Zientez;
 
import org.bukkit.plugin.java.JavaPlugin;
 
public class Main extends JavaPlugin{
 
public static Main instance;
 
@Override
public void onDisable() {
System.out.print("Plugin zostal wylaczony"); 
}
 
@Override
public void onEnable() {
instance = this;
saveDefaultConfig();
System.out.print("Plugin zostal uruchomiony");
 
getCommand("gildia").setExecutor(new CommandG());
}
 
}
 
CommandG:
 
 
package me.Zientez;
 
import java.util.List;
 
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
 
public class CommandG implements CommandExecutor{
 
 
public static List<String> gildia;
private FileConfiguration cfg = Main.instance.getConfig();
 
@Override
    public boolean onCommand(CommandSender sender, Command cmnd, String string, String[] args) {
     Player p = (Player) sender;
         if (args.length==0){
         List<String> list = cfg.getStringList("gildia");{
         p.sendMessage(cfg.getStringList("gildia").toArray(new String[list.size()]));
         return true;
         }
     }
         if (args[1].equalsIgnoreCase("zaloz")){
         p.performCommand("f create" + args[1]);
         return true;
     }
    return false;
}
}
 
Plugin.yml
 
name: Plugin
main: me.Zientez.Main
description: Ble ble
version: 1.0
 
commands:
 
  gildia:
    description: ble ble
 
 
Config:
 
gildia:
    - '/gildia zaloz <nazwa>'
    - '/gildia opis <opis>'
 
Opublikowano

@1361622928-U485574.png.KoMaR1911 Gosciu lap like, ale ten tego... Bedzie alias komendy /g tak? Trzeba podawac w [g] []? Ok i jeszcze szukam aby po wpisaniu /gildia zaloz <nazwa> wykonywalo komende /f create <nazwa>.

 

Nie, ten kwadratowy nawias nie jest odczytywany przez plugin, wpisujesz tylko /g.

Co do wykonywania komendy nie jest to takie proste, bo musisz pobrać ten argument przy /g zaloz i użyć go w /f create.

Event: PlayerCommandPreprocessEvent - tym się pobaw. ;)

Opublikowano

@rafszy122 ok dzieki mialem te linijke ale zamiast msg mialem s. Teraz powinno dzialac. A moglbys zrobic przyklad z /gildia zaloz <nazwa> i wykonuje /f create <nazwa>? Probowalem sam ale mi nie wychodzi. Dam Ci za to 15 lajkow.

Opublikowano
	@EventHandler
	public void onCommand(PlayerCommandPreprocessEvent e){
		Player p = e.getPlayer();
		String[] command = e.getMessage().split(" ");
		if(command.length >= 3){
			if(command[0].equalsIgnoreCase("gildia") && command[1].equalsIgnoreCase("zaloz")){
				Bukkit.dispatchCommand(p, "/f create " + command[2]);
			}

		}
	}

Powinno dzialac

Opublikowano

Jutro dam lajki dzisiaj limit wyczerpany.

 

 

 

 

 

 

//EDIT

Jak chce dodac np. /gildia usun to robic w osobnej klasie czy po prostu odpowiednio wytabowac?

 

Lepiej zrobic to w kilku klasach czy nie? Nie obciazy to pluginu jak zrobie 15 komend spolszczonych?

Opublikowano

@Aexir zrobilem, tak ze cos tam po importowalem, ale wtedy zadna komenda nie dzialala. Zrob to jak nalezy a dam ci lajki,

ale wiesz ze to jako string musisz ?

 

public static string fixmsg(String msg)

return chatcolor itd

 

mam nadzieje ze wiesz jak to uzywac 

Opublikowano
public static String fixColor(String msg){
if(msg == null){
return "";
}
return ChatColor.translateAlternateColorCodes('&', msg);
}

Mam nadzieję, że wiesz jak tego używać @Zientez

|| 50 | 100 | 150 | 200 | 250 | 300 | 350 | 400 | 450 | 500 ||


 

Opublikowano

@Mistrz25566 no pewnie, ze wiem, a wiesz jak zrobic aby bylo w jednej klasie /gildia, ktora wykonuje /f i /gildia zaloz <nazwa>, ktora wywoluje /f create <nazwa>? KArolina mowila, zeby zrobic to w jednej klasie trzeba zaargumentowac. wiesz jak to zrobic?

Opublikowano

Dalej blad wywala wez to wklej tam gdzie trzbea bo raczej dobrze wklejam i trzeba kliknac tam gdzie sie importuje i opcji z 5 jest... JAk klikne jakas to i tak nie dziala...


Skryptow nie robie, one sa do bani i w ogole. Skrypty to ja pisze w 0,00001 sekund, ale nie cche badziewia.

 

Dodaj ten kolorek do przykladu pls.

Opublikowano

Wiesz, że to 

public static String fixColor(String msg){
if(msg == null){
return "";
}
return ChatColor.translateAlternateColorCodes('&', msg);
}

Musisz wkleić w Main? 

|| 50 | 100 | 150 | 200 | 250 | 300 | 350 | 400 | 450 | 500 ||


 

Opublikowano

Polecam skrót Ctrl + Shift + O. Jeżeli korzystasz z Eclipse ;)

 

A jeżeli nie to ty coś zjebałeś bo to u mnie działa...

|| 50 | 100 | 150 | 200 | 250 | 300 | 350 | 400 | 450 | 500 ||


 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...