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

Spawn, setspawn w JavaCode - jak napisać...


Rekomendowane odpowiedzi

Opublikowano

Witajcie! Jestem początkującym w języku Javy dlatego zwracam się do Was ... potrzebuje kodu który będzie ustawiać spawn dla graczy w określonym miejscu po wykonaniu komendy...

Zaznaczam że  mój plug-in nie zawiera config.yml a jak sprawdzałem na bukkit.org to kod zawiera coś o getConfig.(dalszy kod) jak mogę to zamienić?

getConfig().set("worlds."+worldname+".z", l.getZ());

czym mogę zastąpić ten"getConfig"? Ma ktoś przejrzysty kod? Akurat do tej class? 

Z góry dzięki !

TheMinecraft

#LetsPlayOnceAgain

#TheMinecraft

Śledź nas na FaceBook/TheMinecraftpl!

 

 

Opublikowano

żeby takie dane się zapisywały pomiędzy restartami itd. to musisz to gdzieś zapisywać, a że bukkit ma wbudowaną obsługe do takich rzeczy (głównie config.yml ale nie tylko) to możesz z tego skorzystać.

zeby to działało, to musisz wygenerować config przy starcie jeżeli go nie ma za pomocą

@Override
public void onEnable()
{
	this.saveDefaultConfig();
}

metoda oczywiście w głównej klasie twojego projektu, która rozszerza javaplugin,

(minus jest taki, że komentarze się usuwają, ale jest na to override)

 

potem przywołujesz sobie ten plik config.yml za pomocą

plugin.getConfig()

jeżeli masz instancje twojej klasy main, lub statyczną instancją

MainPlugin.getInstance().getConfig();

gdzie MainPlugin to nazwa twojej klasy itd.

 

no i potem używasz getString/getInt, set itd.

 

tutaj więcej informacji:

http://bukkit.gamepedia.com/Configuration_API_Reference
https://bukkit.org/threads/tut-bukkits-new-fileconfiguration-api-create-a-yaml-configuration.42775/

 

powodzenia.

 

 

 

 

fKJeAI4.jpg

 

 

 

Opublikowano

No oki a jak mogę zrobić żeby mi z tego pliku config.yml pobierało wiadomości np

siema: Witaj na serwerze itp... :P?

@Nocny

TheMinecraft

#LetsPlayOnceAgain

#TheMinecraft

Śledź nas na FaceBook/TheMinecraftpl!

 

 

Opublikowano
38 minut temu, blo1238 napisał:

No oki a jak mogę zrobić żeby mi z tego pliku config.yml pobierało wiadomości np

siema: Witaj na serwerze itp... :P?

@Nocny

getString?

 

 

JAVA <3

 

Opublikowano
1 minutę temu, blo1238 napisał:

a jak chcę żeby pobierało message z wiadomosci.yml?

 

Jaśniej @Entify

tworzysz oddzielna klase, tworzysz stringi, robisz w niej cos typu tworzenie pliku, robisz metode ktore laduje ten plik

 

chociaz jak ty chyba wgl nie znasz sie na podstawach javy to po co to robisz ;/

https://javastart.pl/static/darmowy-kurs-java/

 

 

JAVA <3

 

Opublikowano
2 minuty temu, blo1238 napisał:

a jak chcę żeby pobierało message z wiadomosci.yml?

 

Jaśniej @Entify

Już to widzę, jak robisz inne pliki i pytasz się o pomoc.

 

Przykład w komendzie

 Player p = Player (sender);
	p.sendMessage(Main.getConifg().getString("wiadomosc"));
	

Opublikowano
8 minut temu, ScoreBoard napisał:

Już to widzę, jak robisz inne pliki i pytasz się o pomoc.

 

Przykład w komendzie

 


 Player p = Player (sender);
	p.sendMessage(Main.getConifg().getString("wiadomosc"));
	

 

ups, "Player p = (Player)sender;"

 

@topic

jak juz masz wsystko co ci napisalem to robisz cos takiego przykladowo;

String wiadomosc = KLASA_Z_WIADOMOSCIAMI.STRING_Z_WIADOMOSCIA;
Player p = (Player)sender;
p.sendMessage(wiadomosc);

/\ przykladowo w commandexecutorze

 

 

JAVA <3

 

Opublikowano

Nie bądźcie nie mili... wątpię że każdy z was na początku był znawcą całej Javy... zluzujcie gacie...

 

@Topic

OK thx for help :) Zamykam :)

TheMinecraft

#LetsPlayOnceAgain

#TheMinecraft

Śledź nas na FaceBook/TheMinecraftpl!

 

 

Opublikowano

jeżeli chcesz, żeby twoje wiadomości były w innym pliku, to musisz sobie stworzyć cały mechanizm generowania takich wiadomości, odczytu itd.

z pomocą przychodzi YamlConfiguration, dzięki któremu można z niego korzystać i używac plików .yml

    private final File langFile = new File(MainPlugin.getInstance().getDataFolder(), "lang.yml");
    private YamlConfiguration langConfiguration;

    public void loadConfiguration()
    {
        langConfiguration = YamlConfiguration.loadConfiguration(langFile);
    }

    public YamlConfiguration getConfiguration()
    {
        return langConfiguration;
    }

bardzo uproszczony przykład, możesz to rozbudować o nowe funkcje, możesz też to zrobić w inny sposób, za pomocą enumów i ładowania z dysku etc., kto co woli 

 

 

 

 

fKJeAI4.jpg

 

 

 

Opublikowano

a no i zapomnialem, proste setspawn z mojego core;

package me.entify.tools.commands;

import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import me.entify.tools.utils.Util;

public class SetSpawnCommand
  implements CommandExecutor
{
  
  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
  {
   if (!sender.hasPermission("entcore.setspawn"))
	{
	 sender.sendMessage(Util.fixColor("&8>> &cNie masz uprawnien. &7(entcore.setspawn"));
	 return false;
	}
    if ((sender instanceof Player))
    {
      Player player = (Player)sender;
      Location location = player.getLocation();
      player.getWorld().setSpawnLocation(location.getBlockX(), location.getBlockY(), location.getBlockZ());
      player.sendMessage(Util.fixColor("&8>> &7Ustawiles spawn! &a(x:" + location.getBlockX() + " y:" + location.getBlockY() + " z:" + location.getBlockZ() + "&a)"));
    }
    else
    {
      sender.sendMessage(Util.fixColor("&4ONLY PLAYER"));
    }
    return false;
  }
}

 

 

 

JAVA <3

 

Opublikowano

@Nocny, @Entify

 

a czemu podświetla mi się getInstance() na czerwono?

public class ClassMain extends JavaPlugin{
	public static Plugin instance;
	private final File wiadomosci = new File(ClassMain.getInstance().getDataFolder(), "wiadomosci.yml");
	private YamlConfiguration langConfiguration;
	    public void loadConfiguration()
	    {
	        langConfiguration = YamlConfiguration.loadConfiguration(wiadomosci);
	    }

	    public YamlConfiguration getConfiguration()
	    {
	        return langConfiguration;
	    }

 

TheMinecraft

#LetsPlayOnceAgain

#TheMinecraft

Śledź nas na FaceBook/TheMinecraftpl!

 

 

Opublikowano
2 minuty temu, blo1238 napisał:

@Nocny, @Entify

 

a czemu podświetla mi się get.Instance() na czerwono?


public class ClassMain extends JavaPlugin{
	public static Plugin instance;
	private final File wiadomosci = new File(ClassMain.getInstance().getDataFolder(), "wiadomosci.yml");
	private YamlConfiguration langConfiguration;
	    public void loadConfiguration()
	    {
	        langConfiguration = YamlConfiguration.loadConfiguration(wiadomosci);
	    }

	    public YamlConfiguration getConfiguration()
	    {
	        return langConfiguration;
	    }

 

a zrobiles metode getinstance?

 

 

JAVA <3

 

Opublikowano

Mam coś takiego jak

public static Plugin instance;

oraz potem w voidzie onEnable

instance = this;

@Entify

TheMinecraft

#LetsPlayOnceAgain

#TheMinecraft

Śledź nas na FaceBook/TheMinecraftpl!

 

 

Opublikowano

Ok działa pięknie :)

dziękuję @vikerk123l

teraz jak tylko mogę zrobić żeby właśnie w wiadomości.yml pobierało do kodu daną wiadomość? 

 

chodzi o to żeby była wysyłana na chacie :)

TheMinecraft

#LetsPlayOnceAgain

#TheMinecraft

Śledź nas na FaceBook/TheMinecraftpl!

 

 

Opublikowano
7 minut temu, blo1238 napisał:

Ok działa pięknie :)

dziękuję @vikerk123l

teraz jak tylko mogę zrobić żeby właśnie w wiadomości.yml pobierało do kodu daną wiadomość? 

 

chodzi o to żeby była wysyłana na chacie :)

no jak juz masz stringi zrobione to robisz tak;

 

//sender w komendzie
sender.sendMessage(Klasa_z_wiadomosciami.String_z_wiadomoscia);

 

 

 

JAVA <3

 

Opublikowano

@Entify

ja dalej czegoś nie pojmuję ... jak to klasa z wiadomościami? chodzi co o rozszerzenie .class? 

jak to mniej więcej ma wyglądać? skoro wszystko jest pod yml? 

ja dzisiaj nie ogarniam :D :P wytłumacz :) będę wiedział na przyszłość :)

TheMinecraft

#LetsPlayOnceAgain

#TheMinecraft

Śledź nas na FaceBook/TheMinecraftpl!

 

 

Opublikowano
11 minut temu, blo1238 napisał:

@Entify

ja dalej czegoś nie pojmuję ... jak to klasa z wiadomościami? chodzi co o rozszerzenie .class? 

jak to mniej więcej ma wyglądać? skoro wszystko jest pod yml? 

ja dzisiaj nie ogarniam :D :P wytłumacz :) będę wiedział na przyszłość :)

twoja klasa z wiadomosciami to MainClass, musisz zrobic w niej stringi

czyli np.

  public static String WIADOMOSC = "TWOJA WIADOMOSC";

 

a odczytujesz, np. w komendach tak:

sender.sendMessage(MainClass.WIADOMOSC);

 

 

 

JAVA <3

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...