Skocz do zawartości
  • 0

YML -> MySQL


Gość KuzynProcesor

Pytanie

Gość KuzynProcesor

Witam,

przerobiłby mi ktoś zapis w plikach YML na zapis w MySQL?

Dane bazy wklepać gdzieś w kod, sam sobię znajdę i zamienię 

Daję tutaj wszystko co potrzebne! (i dziękuję serdecznie za pomoc :))

    public static void check() {
        if (!Config.mainDir.exists()) {
            Config.mainDir.mkdir();
        }
        if (!Config.users.exists()) {
            Config.users.mkdir();
        }
        if (!Config.cfgFile.exists()) {
            Main.getInst().saveDefaultConfig();
        }
    }
    
    public static File getUsersFolder() {
        return Config.users;
    }
package pl.karas.schowek.Data;

import java.util.Iterator;
import java.io.IOException;
import pl.karas.schowek.Main;
import java.io.File;
import org.bukkit.configuration.file.YamlConfiguration;

public class DataLoader
{
    public static void load() {
    }
    
    public static void save() {
    }
    
    public static void loadUsers() {
        File[] arrayOfFile;
        for (int j = (arrayOfFile = Config.getUsersFolder().listFiles()).length, i = 0; i < j; ++i) {
            final File f = arrayOfFile[i];
            final YamlConfiguration yml = YamlConfiguration.loadConfiguration(f);
            final String name = yml.getString("name");
            final int koxy = yml.getInt("koxy");
            final int refy = yml.getInt("refy");
            final int perly = yml.getInt("perly");
            new User(name, koxy, refy, perly);
        }
    }
    
    public static void saveUsers() {
        for (final User u : Main.getInst().users) {
            final File f = new File(Config.getUsersFolder(), String.valueOf(String.valueOf(String.valueOf(u.getName()))) + ".yml");
            if (!f.exists()) {
                try {
                    f.createNewFile();
                }
                catch (IOException e) {
                    e.printStackTrace();
                }
            }
            final YamlConfiguration yml = YamlConfiguration.loadConfiguration(f);
            yml.set("name", (Object)u.getName());
            yml.set("koxy", (Object)u.getKoxy());
            yml.set("refy", (Object)u.getRefy());
            yml.set("perly", (Object)u.getPerly());
            try {
                yml.save(f);
            }
            catch (IOException e2) {
                e2.printStackTrace();
            }
        }
    }
}
package pl.karas.schowek.Data;

import java.util.Iterator;
import pl.karas.schowek.Main;

public class User
{
    private String name;
    private int koxy;
    private int refy;
    private int perly;
    
    public User(final String name, final int koxy, final int refy, final int perly) {
        this.name = name;
        this.koxy = koxy;
        this.refy = refy;
        this.perly = perly;
        Main.getInst().users.add(this);
    }
    
    public String getName() {
        return this.name;
    }
    
    public int getKoxy() {
        return this.koxy;
    }
    
    public void setKoxy(final int koxy) {
        this.koxy = koxy;
    }
    
    public int getPerly() {
        return this.perly;
    }
    
    public void setPerly(final int perly) {
        this.perly = perly;
    }
    
    public int getRefy() {
        return this.refy;
    }
    
    public void setRefy(final int refy) {
        this.refy = refy;
    }
    
    public static User get(final String user) {
        for (final User u : Main.getInst().users) {
            if (u.getName().equalsIgnoreCase(user)) {
                return u;
            }
        }
        return null;
    }
}

 

DZIĘKUJĘ SERDECZNIE ZA WSZELKĄ POMOC :)

Edytowane przez KuzynProcesor
Odnośnik do komentarza
https://skript.pl/temat/35491-yml-mysql/
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Gość Usunięty#3468

Nie jest to odpowiedz na twoj problem, ale te kilka rad moze ci sie przydac

    private int koxy;
    private int refy;
    private int perly;

zmienne powinienes nazywac po angielsku i zgodnie z camelCase

import pl.karas.schowek.Main;

package tez powinno sie zapisywac po angielsku.

Bukkit zaleca nazywanie glownej klasy pluginu jako TwojPluginPlugin

    public User(final String name, final int koxy, final int refy, final int perly) {
		[...]
        Main.getInst().users.add(this);
    }

W konstruktorze powinines jedynie ustawiac zmienne. Wez nie powtarzaj bledow z fg xD

Jesli chcesz dodac nowego uzytkownika to lepiej byloby zrobic

User user = new User([...]);
Main.getInst().users.add(user);

a najlepiej stworzyc nowa klase przykladowo nazwana UserManager i tam bys ich wszystkich trzymal, ale jesli to nie jest jakis duzy plugin to nie ma takiej potrzeby

    public static User get(final String user) {
        for (final User u : Main.getInst().users) {
            if (u.getName().equalsIgnoreCase(user)) {
                return u;
            }
        }
        return null;
    }

Jesli juz dodajesz uzytkownikow w glownej klasie to metoda od szukania ich powinna tez byc w tej klasie. Tak btw. nie szukaj graczy po nicku, a po unikalnym id, bo nick mozna zmienic a uuid juz nie.

return Config.users;

Nie rob tak ustaw modyfikator dostepu do tej zmiennej jako prywatny i zrob po prostu getter do niej.

 

Odnośnik do komentarza
https://skript.pl/temat/35491-yml-mysql/#findComment-228075
Udostępnij na innych stronach

  • 0
Gość KuzynProcesor
Godzinę temu, HotAngel2K17 napisał:

String.valueOf(String.valueOf(String.valueOf(u.getName()))) + ".yml"); WTFFFFFFFF

Nie moje, jak zawsze z src (xD)

54 minuty temu, Sewer napisał:

Nie jest to odpowiedz na twoj problem, ale te kilka rad moze ci sie przydac


    private int koxy;
    private int refy;
    private int perly;

zmienne powinienes nazywac po angielsku i zgodnie z camelCase


import pl.karas.schowek.Main;

package tez powinno sie zapisywac po angielsku.

Bukkit zaleca nazywanie glownej klasy pluginu jako TwojPluginPlugin


    public User(final String name, final int koxy, final int refy, final int perly) {
		[...]
        Main.getInst().users.add(this);
    }

W konstruktorze powinines jedynie ustawiac zmienne. Wez nie powtarzaj bledow z fg xD

Jesli chcesz dodac nowego uzytkownika to lepiej byloby zrobic


User user = new User([...]);
Main.getInst().users.add(user);

a najlepiej stworzyc nowa klase przykladowo nazwana UserManager i tam bys ich wszystkich trzymal, ale jesli to nie jest jakis duzy plugin to nie ma takiej potrzeby


    public static User get(final String user) {
        for (final User u : Main.getInst().users) {
            if (u.getName().equalsIgnoreCase(user)) {
                return u;
            }
        }
        return null;
    }

Jesli juz dodajesz uzytkownikow w glownej klasie to metoda od szukania ich powinna tez byc w tej klasie. Tak btw. nie szukaj graczy po nicku, a po unikalnym id, bo nick mozna zmienic a uuid juz nie.


return Config.users;

Nie rob tak ustaw modyfikator dostepu do tej zmiennej jako prywatny i zrob po prostu getter do niej.

 

@up - nie moje, tylko z SRCe (przerobione na własne potrzeby)

Edytowane przez KuzynProcesor
Odnośnik do komentarza
https://skript.pl/temat/35491-yml-mysql/#findComment-228082
Udostępnij na innych stronach

  • 0

My tu pomagamy z kodem a nie piszemy go za ciebie ;/ Widać że pełno rzeczy z kompilatora (czyli nie jest twoje) a bierzesz się za edycje i jeszcze chcesz żeby ktoś za ciebie to zrobił.. Poszukaj prostego poradnika na spigotmc i poprobuj sam, albo się nie nauczysz

Odnośnik do komentarza
https://skript.pl/temat/35491-yml-mysql/#findComment-228118
Udostępnij na innych stronach

  • 0
Gość KuzynProcesor

Ok, odnoszę się do waszych komów:

@Sewer 

W dniu 6.11.2019 o 19:57, Sewer napisał:

Nie jest to odpowiedz na twoj problem, ale te kilka rad moze ci sie przydac


    private int koxy;
    private int refy;
    private int perly;

zmienne powinienes nazywac po angielsku i zgodnie z camelCase

NAZWA WŁASNA, ZOSTAŁO :)


import pl.karas.schowek.Main;

package tez powinno sie zapisywac po angielsku.

Bukkit zaleca nazywanie glownej klasy pluginu jako TwojPluginPlugin

pl.AUTOR.NAZWApluginu.xxx - tak się uczyłem z poradników


    public User(final String name, final int koxy, final int refy, final int perly) {
		[...]
        Main.getInst().users.add(this);
    }

W konstruktorze powinines jedynie ustawiac zmienne. Wez nie powtarzaj bledow z fg xD

POPRAWIŁEM THX

Jesli chcesz dodac nowego uzytkownika to lepiej byloby zrobic


User user = new User([...]);
Main.getInst().users.add(user);

POPRAWIŁEM

a najlepiej stworzyc nowa klase przykladowo nazwana UserManager i tam bys ich wszystkich trzymal, ale jesli to nie jest jakis duzy plugin to nie ma takiej potrzeby


    public static User get(final String user) {
        for (final User u : Main.getInst().users) {
            if (u.getName().equalsIgnoreCase(user)) {
                return u;
            }
        }
        return null;
    }

Wkleiłem kod z 3 klas, ten "UserManager" to u mnie DataLoader

Jesli juz dodajesz uzytkownikow w glownej klasie to metoda od szukania ich powinna tez byc w tej klasie. Tak btw. nie szukaj graczy po nicku, a po unikalnym id, bo nick mozna zmienic a uuid juz nie.


return Config.users;

Nie rob tak ustaw modyfikator dostepu do tej zmiennej jako prywatny i zrob po prostu getter do niej.

OK POPRAWIONE

 

 

@yooniks

W dniu 7.11.2019 o 06:45, yooniks napisał:

My tu pomagamy z kodem a nie piszemy go za ciebie ;/ Widać że pełno rzeczy z kompilatora (czyli nie jest twoje) a bierzesz się za edycje i jeszcze chcesz żeby ktoś za ciebie to zrobił.. Poszukaj prostego poradnika na spigotmc i poprobuj sam, albo się nie nauczysz

Dlatego chcę widzieć jak to by wyglądało, bo z samego tuta będę wiedział że trzeba XYZ zrobić a i tak nic z tego nie wyniosę :C

No i mowa końcowa:

PLUGINY - 1/10

SKRYPTY - 12/10 (nie publikuje dla innych 🏏)

Odnośnik do komentarza
https://skript.pl/temat/35491-yml-mysql/#findComment-228332
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...