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] Pobieranie wiadomości z configu


Rekomendowane odpowiedzi

Opublikowano

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

<

Witam!

Uczę się pisać pluginów w javie (dużo osób mi pisało abym przeszedł na jave) stworzyłem główny plik class i 2 poboczne czyli komendy. Gdy wpisze się /vip lub /vipek ma wyświetlić 2 różne informacje. Lecz ciągle muszę wchodzić w source pluginu i tam edytować w kodzie. Czy da się taki config zrobić?

 

Główny plik class

package com.gmail.gredierrr.pierwszy;

import java.util.logging.Logger;

import org.bukkit.plugin.java.JavaPlugin;

public class Plugin extends JavaPlugin{
	public static Logger log;
	
	@Override
    public void onEnable() {
		this.getCommand("vip").setExecutor(new MyCmdExecutor());
		this.getCommand("vipek").setExecutor(new vipek());
		log = getLogger();
		log.info("Plugin "+getName()+" zostal wczytany!");
	}
	
	@Override
    public void onDisable() {
	}
}

MyCmdExecutor: w tym pliku właśnie zamiast "komenda" i "opis" miało by się wpisywać w configu co ma się tam wpisać/wyświetlić 

package com.gmail.gredierrr.pierwszy;

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

	public void onEnable() {
		Bukkit.getServer().getLogger().info("Plugin wlaczony!");
	}
	
	public void onDisable() {
		Bukkit.getServer().getLogger().info("Plugin wylaczony!");
	}
	
	public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
		
		if (!(sender instanceof Player)) {
			sender.sendMessage(ChatColor.RED + "Konsola nie moze uzywac tej komendy!");
			return true;
		}
		
		Player player = (Player) sender;
		
		if (cmd.getName().equalsIgnoreCase("vip")) {
			player.sendMessage(ChatColor.GOLD + "komenda" + ChatColor.AQUA + "opis");
			player.sendMessage(ChatColor.GOLD + "komenda" + ChatColor.AQUA + "opis");
			player.sendMessage(ChatColor.GOLD + "komenda" + ChatColor.AQUA + "opis");
			player.sendMessage(ChatColor.GOLD + "komenda" + ChatColor.AQUA + "opis");
			player.sendMessage(ChatColor.GOLD + "komenda" + ChatColor.AQUA + "opis");
		}
		return true;
	}
}

Tworzę strony internetowe.

Sklepy Minecraft, CMS-y, fora itp.

Opublikowano

 

Lecz ciągle muszę wchodzić w source pluginu i tam edytować w kodzie

 

Ale o co Ci chodzi? o.O

this.getCommand("vipek").setExecutor(new vipek());

Od kiedy to nazwy klas robi się z małej litery?

Tak BTW dlaczego masz w tej drugiej klasie rozszerzenie JavaPlugin i metody z tej klasy? To 2 pluginy?

Dlaczego MPC popiera piractwo Minecrafta...

 

Do moderatora: Po co Ty to usuwasz??

Opublikowano

W MyExecutorcommand wykonują się komendy ;) Zrobiłem tak by w głównym pliku nie robić syfu. Nie wiedziałem, że z małej nie można ;D Działało to działało. Lecz ja potrzebuję tak aby w configu wpisywać wiadomość, która będzie się wyświetlać po wpisaniu /vip

Tworzę strony internetowe.

Sklepy Minecraft, CMS-y, fora itp.

Opublikowano

W MyCmdExecutor robi się tak:

public class MyCmdExecutor implements CommandExecutor

Wystarczy że w głównej klasie pisze się extends JavaPlugin a w innych klasach już nie.

	public void onEnable() {
		Bukkit.getServer().getLogger().info("Plugin wlaczony!");
	}
	
	public void onDisable() {
		Bukkit.getServer().getLogger().info("Plugin wylaczony!");
	}

Człowieku! Takie rzeczy robi się w głównej klasie a nie w commandexecutorze.

if (!(sender instanceof Player)) {
			sender.sendMessage(ChatColor.RED + "Konsola nie moze uzywac tej komendy!");
			return true;
		}

Tutaj zwracasz false a nie true o.O To samo z ostatnim return'em.

Player player = (Player) sender;

Po co wy to używacie? Można normalnie przy graczu:

sender.sendMessage("cos")

Polecam ten poradnik http://www.mpcforum.pl/topic/1016491-od-zera-do-bukkits-plug-in-developera/ , jest lepszy od poradnika skew'a z którego korzystasz. Jest tam w temacie 11 odnośnie configu, nie będę ci się tu rozpisywał.

f

Opublikowano

Tak namieszałeś, że szkoda to komentować...

 

Po pierwsze nazewnictwo i rozplanowanie klas. Od kiedy główną klasę nazywa się "Plugin"? Tu nie chodzi o to, że plugin nie będzie działał, bo jest zła nazwa głównej klasy, czy też mała litera w tej drugiej klasie, ale chodzi o to, że są pewne zasady w pisaniu w Javie, oraz pod Bukkita.

Tak się pisze i tyle. Nie ma zasady dlaczego. Tak jest i będzie po prostu.

 

Po drugie, onEnable(), czyli czynności wykonywanej przy ładowaniu wtyczki, jak można onEnable() i po co wpierdzielić do MyCMDExecutora? Pomijam też to, że w głównej klasie dałeś informację, że klasa, która jest dopisana do komendy /vipek nazywa się vipek a w rzeczywistości zupełnie inaczej.

Czy Ty w ogóle myślisz, czy kopiujesz jak leci inne kody?

 

Najpierw naucz się podstaw, jak nazywać klasy, robić konstruktory, executory potem się bierz za configi. Śmiech na sali.

 

To nie ma prawa działać, kolejna rzecz, którą zauważyłem: w głównej klasie rejestrujesz komendę vipek do danej klasy, a w tej jeszcze źle nazwanej klasie (inaczej niż w głównej) sprawdzasz ignorując wielkość znaków, czy ta komenda to /vip. Albo to jakaś marna prowokacja, albo kolejny pseudo programista na forum.

 

Jeszcze do tego pojebane returny, czyli zwracanie, no masakra.

 

Jak już się nauczysz podstaw, to wróć i powiemy Ci jak zrobić config. Podpowiem, że trzeba listy stringów użyć, ale i tak nie wiesz o co chodzi... :D

Pzdr, 

Avaterys.

8098_com.tmobile.theme.Ubuntu_ubuntu-cm1


 


Risen. :# - wierny użytkownik Linux'a (Ubuntu). :D

Opublikowano

W MyExecutorcommand wykonują się komendy ;) Zrobiłem tak by w głównym pliku nie robić syfu. Nie wiedziałem, że z małej nie można ;D Działało to działało. Lecz ja potrzebuję tak aby w configu wpisywać wiadomość, która będzie się wyświetlać po wpisaniu /vip

No to wtedy w głownej robisz

package com.gmail.gredierrr.pierwszy;

import java.util.logging.Logger;

import org.bukkit.plugin.java.JavaPlugin;

public class Plugin extends JavaPlugin {
    public static Logger log;
    private static Plugin instance;
    
    @Override
    public void onEnable() {
        instance = this;
        this.getCommand("vip").setExecutor(new MyCmdExecutor());
        this.getCommand("vipek").setExecutor(new vipek());
        log = getLogger();
        log.info("Plugin "+getName()+" zostal wczytany!");
    }
    
    @Override
    public void onDisable() {}
    
    public static Plugin get() {
        return instance;
    }
    
}
player.sendMessage(Plugin.get().getConfig().getString("cycki"));
player.sendMessage(Plugin.get().getConfig().getString("cycki"));
player.sendMessage(Plugin.get().getConfig().getString("cycki"));
player.sendMessage(Plugin.get().getConfig().getString("cycki"));

eZ

Dlaczego MPC popiera piractwo Minecrafta...

 

Do moderatora: Po co Ty to usuwasz??

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...