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

[Pytanie] Jak dodac do kodu pluginu kolorek? & z configu


Rekomendowane odpowiedzi

Opublikowano

Jak dodac kolorek aby po wpisaniu & w configu bralo dowolny kolorek:

 

Main:

 

package me.Zientez;
 
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;
 
public class Main extends JavaPlugin{
 
public static Main instance;
public static String fixColor(String msg){
if(msg == null){
return "";
}
return ChatColor.translateAlternateColorCodes('&', msg);
}
 
@Override
public void onDisable() {
System.out.print("Plugin zostal wylaczony"); 
}
 
@Override
public void onEnable() {
instance = this;
saveDefaultConfig();
System.out.print("Plugin zostal uruchomiony");
 
getCommand("sms").setExecutor(new CommandSMS());
}
 
}
 
CommandSMS:
 
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 CommandSMS implements CommandExecutor{
 
 
public static List<String> sms;
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("sms");{
         p.sendMessage(cfg.getStringList("sms").toArray(new String[list.size()]));
         return true;
         }
     }
         if (args[0].equalsIgnoreCase("vip")){
         List<String> list = cfg.getStringList("sms_vip");{
         p.sendMessage(list.toArray(new String[list.size()]));
         return true;
     }
         }
         if (args[0].equalsIgnoreCase("svip")){
         List<String> list = cfg.getStringList("sms_svip");{
         p.sendMessage(list.toArray(new String[list.size()]));
         return true;
     }     
         }
    return false;
}
}
 
 
Plugin.yml
 
name: Rangi
main: me.Zientez.Main
description: Informacje o Rangach
version: 1.0
 
commands:
 
  sms:
    description: Informacje o Rangach
 
 
sms:
    - '&4test'
    - '&2test'
sms_vip:
    - '&2test'
    - '&2test'
sms_svip:
    - '&2test'
    - '&2test'
 
 
Proszę dodać kolorek bo teraz nie działa. Nie pisać, że to dodać tylko proszę zedytować całość, daje lajki! Chce 100% dobra odpowiedź.
Opublikowano

        p.sendMessage(Main.fixColor(list.toArray(new String[list.size()])));

... toś podał kod co nawet nie zadziała.

 

Polecam zrobić sobie taką wygodną metodę:

(to replace możesz pominąć)

 

public static void sendMessage(CommandSender sender, String... msgs)
{
    for (String s:msgs)
    {
        sender.sendMessage(ChatColor.translateAlternateColorCodes('&', s.replace("\\n", "\n")));
    }
}

1438614356923701010629.png

 

Opublikowano

@1361622928-U485574.pngGotoFinal I to do Main dodac? W CommandSMS nic nie zmieniac?

Nie dzialaja kolorki dalej

Ale używasz tej metody?

I tak patrze że ty używasz List Stringów, więc masz jeszcze taką metodę:

public static void sendMessage(CommandSender sender, List<String> msgs)
{
    for (String s:msgs)
    {
        sender.sendMessage(ChatColor.translateAlternateColorCodes('&', s.replace("\\n", "\n")));
    }
}

będzie ci wygodniej :P

 

Ale musisz tego użyć

 

Main.sendMessage(player, messagesList);

1438614356923701010629.png

 

Opublikowano

@1361622928-U485574.pngGotoFinal To sklej to w calosc

to już twoja rola, dostałeś metodę, to jej teraz użyj tam gdzie potrzebujesz, masz tylko do niej podać gracza i listę wiadomości jakie wysyłasz, reszta zrobi się sama.

1438614356923701010629.png

 

Opublikowano

@1361622928-U485574.pngGotoFinal dalej 0 errorow ale mi nie dziala... Nwm co zle robie... Jak skleisz calosc i bedzie 100% poprawnie dam Ci limit lajkow :). I takie male pyt. Mozna uzywac w configu paragrafow nie dodajac do kofu fixcolor i translate... ? Pls sklej calosc.

Opublikowano

Fvck dalej 0 errorow ale mi nie dziala... Nwm co zle robie... Jak skleisz calosc i bedzie 100% poprawnie dam Ci limit lajkow :). I takie male pyt. Mozna uzywac w configu paragrafow nie dodajac do kofu fixcolor i translate... ? Jak cos sklej calosc a dam Ci 15 lajk.

Nie skleje całości, "lajki" mam głęboko w pupce.

 

Wyślij aktualny kod z obu klas, to się zobaczy co masz źle.

1438614356923701010629.png

 

Opublikowano

@1361622928-U485574.pngGotoFinal wole dodac kolorek &. Czyli kod ma wygladac tak?

 

Main:

package me.Zientez;
 
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;
 
public class Main extends JavaPlugin{
 
public static Main instance;
public static void sendMessage(CommandSender sender, List<String> msgs)
{
    for (String s:msgs)
    {
        sender.sendMessage(ChatColor.translateAlternateColorCodes('&', s.replace("\\n", "\n")));
    }
}
 
@Override
public void onDisable() {
System.out.print("Plugin zostal wylaczony"); 
}
 
@Override
public void onEnable() {
instance = this;
saveDefaultConfig();
System.out.print("Plugin zostal uruchomiony");
 
getCommand("sms").setExecutor(new CommandSMS());
}
 
}
A w command sms:

 

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 CommandSMS implements CommandExecutor{
 
 
public static List<String> sms;
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){
         Main.sendMessage(player, messagesList);
         List<String> list = cfg.getStringList("sms");{
         p.sendMessage(cfg.getStringList("sms").toArray(new String[list.size()]));
         return true;
         }
     }
Wiem ze cos schrzanilem w command sms jak cos prosze popraw aby dzialalo jestem poczatkujacy. Jak cos jest zle wytabowane itp bo robilem to na tel.
Opublikowano

napisałam że musisz uzywać tej metody... po co ci ta metoda skoro jej nie używasz?

 

dałes tylko cos takiego:

Main.sendMessage(player, messagesList);

Ale u ciebie musiasz tam podać te zmienne, na których chcesz to wykonać.... czyli "sender" lub "p" (PS: po co masz w kodzie Player p = (Player) sender;, nie potrzebujesz tego, wysyłać wiadomości możesz bezpośrednio do sendera.)

I to samo z drugim argumentem, to ma być ta twoja lista: 

List<String> list = cfg.getStringList("sms");

Na gotowy kod nie licz, masz się tego nauczyć, a nie skopiować.

1438614356923701010629.png

 

Opublikowano

alwe cała logika polega tylko na użyciu tej meotdy

masz np:

Player player = (Player) sender;
// jakiś tam kod który wykonujesz
if (args[0].equals("opcja1")
{
    List<String> list = cfg.getStringList("opcje.opcja1");
    Main.sendMessage(player, list);
    return true;
}
if (args[0].equals("costam")
{
    List<String> list = cfg.getStringList("costam.lel");
    Main.sendMessage(player, list);
    return true;
}
i ot cała logika...

Co z tego że się uczę ileś tam czasu, tutaj wystraszy pomyśleć -> a tego uczysz się całe życie.

1438614356923701010629.png

 

Opublikowano

A nie lepiej zrobić klasę Utils i tam dać 

 

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

I to wywoływać? 

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


 

Opublikowano

@1361622928-U485574.pngGotoFinal gosciu dzieki! I to bedzie dzialac na 100%? Na razie z Javy slaby jestem bo nie moge poswiecac zbyt wiele czasu. Teraz rok szkolny sprawdziany nauka wazniejsza. Jak znajde czas to sie pod ucze bardziej. Dzieki za podeslanie kodu :)

Opublikowano

A nie lepiej zrobić klasę Utils i tam dać 

 

 

public static String fixColors(String msg){
if(msg == null){
return "";
}
return ChatColor.translateAlternateColorCodes('&', msg);
}
I to wywoływać?

 

Nie wiem czy widzisz, ale problem w tym temacie jest właśnie taki że jego autor nie potrafi poprawnie wywołać tej metody.

Bo dostał już kilka gotowych metod, i żadnej z nich nie może użyć.

1438614356923701010629.png

 

Opublikowano

@1361622928-U485574.pngGotoFinal ty podales inna metode. To chyha nic nie zmienia?

@Mistrz25566 i jak wtedy klasa CommandSMS bedzie wygladac?

Moja metoda automatycznie wysyła też wiadomość, oraz działa dla list.

Metoda mistrza tylko poprawia kolorki, i działa dla jednego stringu, czyli trzeba osobno robić pętlę i wysyłać.

Ale obie metody zadziałają, tylko musisz ich użyć.

1438614356923701010629.png

 

Opublikowano

@1361622928-U485574.pngGotoFinal dalej bledy wywala sprawdz sobie jak nie wierzysz... Co jest zle?

 

Main:

 

package me.Zientez;
 
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
 
public class Main extends JavaPlugin{
 
public static Main instance;
public static void sendMessage(CommandSender sender, String... msgs){
    for (String s:msgs)
    {
        sender.sendMessage(ChatColor.translateAlternateColorCodes('&', s.replace("\\n", "\n")));
    }
}
 
@Override
public void onDisable() {
System.out.print("Plugin zostal wylaczony"); 
}
 
@Override
public void onEnable() {
instance = this;
saveDefaultConfig();
System.out.print("Plugin zostal uruchomiony");
 
getCommand("sms").setExecutor(new CommandSMS());
}
 
}
 
Kawalek kodu z CommandSMS:
 
@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("sms");
             Main.sendMessage(player, list);
         return true;
         }
 
Wywala bledy :(
Opublikowano

@up 

 

Może i dostanie warna, ale zauważyłem kilka rzeczy:

 

1. Przez 2 miesiące męczysz się z jednym pluginem, który można napisać w kilka chwil.

2. Nie baw się w Jave, jeżeli nie ogarniasz podstaw.

3. Jak nie umiesz napisać to poproś by Ci go ktoś napisał.

 

 

Tyle z mojej strony. 

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


 

Opublikowano

@Mistrz25566 Przez 2 msc nie zagladalem w ten plugin... Tyle bylo odpowiedzi twoich a kazde bledne... Tylko Karolina najlepiej tlumaczy...


A wtedy tylko jeden tut patrzylem... Dobra od dzisiaj naucze sie wszystkich podstaw... 

Opublikowano

Zaczynasz robić plugin, a gówno umiesz. Moje odp były poprawne, ale jak się z nich korzystać nie umiesz....

|| 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ę...