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] Dobry kod?


Rekomendowane odpowiedzi

Opublikowano

Witam to jest poprawny kod wykorzystujacy essentials economy?

http://pastebin.com/JA8BQe2x

Ten sposob jest poprawny? Czekam na pelna odpowiedz.

public Ekonomia(Main instance){}

po co to jest?

@SuppressWarnings("deprecation")

i to?

 

a co do ekonomi 

        @SuppressWarnings("deprecation")
        public boolean czyMa(String name, double d) throws UserDoesNotExistException{
                return Economy.hasEnough(name, d);
}
        @SuppressWarnings("deprecation")
        public void dodaj(String name, double d) throws NoLoanPermittedException, UserDoesNotExistException{
                Economy.add(name, d);
}
        @SuppressWarnings("deprecation")
        public void odejmij(String name, double d){
                try{
                        Economy.subtract(name, d);
}
                catch(NoLoanPermittedException e){
                        e.printStackTrace();
}
                catch(UserDoesNotExistException e){
                        e.printStackTrace();
}
}

ta, tylko te formatowanie, umiesz sie w tym rozczytac?

no i catcha mozesz przerobic tak:

                try{
                        Economy.subtract(name, d);
}
                catch(NoLoanPermittedException | UserDoesNotExistException e){
                        e.printStackTrace();
}
Opublikowano

@filippop1 ok dzieki, ale mam pytanie. Jesli jest return Economy.hasEnough(name, d); skreslone has Enough jak widac to znaczy, ze metoda jest przestarzala czy co? To nic nie szkodzi? 

Opublikowano

@filippop1 ok dzieki, ale mam pytanie. Jesli jest return Economy.hasEnough(name, d); skreslone has Enough jak widac to znaczy, ze metoda jest przestarzala czy co? To nic nie szkodzi? 

tak.

Więc nie powinieneś jej używać, tylko nowej metody, pewnie używa UUID lub OfflinePlayer zamiast stringu

 

Często oznacza to też że metoda ma zostać potem usunięta, ale w przypadku takiego API jak Vault raczej się nie spodziewam takiej akcji ze strony jego developerów

1438614356923701010629.png

 

Opublikowano
Kuzwa jak dodalem  tego subtracta to mi nawet plugin sie ladowac nie chce... Jprdl lol xddd



@SuppressWarnings("deprecation")
public void odejmij(String name, double d){
try{
Economy.subtract(name, d);
}
catch(NoLoanPermittedException | UserDoesNotExistException e){
e.printStackTrace();
}
}
    }


. Przy sprawdzaniu ilosci kasy dziala ladnie wszystko, ale przy zabieraniu pluginu nie czyta... @GotoFinal ja w UUID sie jeszcze nie bawilem moglbys poprzerabiac to na swoj sposob i if has enougha takze gdybys znalazl czas? Bardzo bym prosil. Probowalem tez sam zrobic prostu z ess api, ale big decymeli nie lapie ble ble jakies errory (https://github.com/essentials/Essentials/blob/2.x/Essentials/src/com/earth2me/essentials/api/Economy.java)

Wiec prosze o jaka kolwiek pomoc. Poleca lajki.

Chociaz prosze o naprawe tego subtracta, bo nie czyta pluginu :(.

Opublikowano

 

Kuzwa jak dodalem  tego subtracta to mi nawet plugin sie ladowac nie chce... Jprdl lol xddd
@SuppressWarnings("deprecation")
public void odejmij(String name, double d){
try{
Economy.subtract(name, d);
}
catch(NoLoanPermittedException | UserDoesNotExistException e){
e.printStackTrace();
}
}
    }
. Przy sprawdzaniu ilosci kasy dziala ladnie wszystko, ale przy zabieraniu pluginu nie czyta... @GotoFinal ja w UUID sie jeszcze nie bawilem moglbys poprzerabiac to na swoj sposob i if has enougha takze gdybys znalazl czas? Bardzo bym prosil. Probowalem tez sam zrobic prostu z ess api, ale big decymeli nie lapie ble ble jakies errory (https://github.com/essentials/Essentials/blob/2.x/Essentials/src/com/earth2me/essentials/api/Economy.java)
Wiec prosze o jaka kolwiek pomoc. Poleca lajki.

 

to może wklej jakie errory/problemy się pojawiają?

a tak to nic trudnego new BigDecimal(long/double) lub bardziej zalecane, new BigDecimal(String) np new BigDecimal("50000")

 

i tutaj metody są oznaczone jako przestarzałe tylko z powodu zmiany double na BigDecimal, więc to też nie jest nic złego :P bo wywołanie tej z double, wywoła tą z BigDecimal

1438614356923701010629.png

 

Opublikowano
[16:26:53 ERROR]: Could not load 'plugins/Sklep.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: com/earth2me/essentials/api/NoLoanPermittedException
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[mc.jar:git-Spigot-1611]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[mc.jar:git-Spigot-1611]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [mc.jar:git-Spigot-1611]
at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugins(CraftServer.java:369) [mc.jar:git-Spigot-1611]
at org.bukkit.craftbukkit.v1_7_R4.CraftServer.reload(CraftServer.java:864) [mc.jar:git-Spigot-1611]
at org.bukkit.Bukkit.reload(Bukkit.java:301) [mc.jar:git-Spigot-1611]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [mc.jar:git-Spigot-1611]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) [mc.jar:git-Spigot-1611]
at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) [mc.jar:git-Spigot-1611]
at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchServerCommand(CraftServer.java:753) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.DedicatedServer.aB(DedicatedServer.java:326) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:290) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [mc.jar:git-Spigot-1611]
Caused by: java.lang.NoClassDefFoundError: com/earth2me/essentials/api/NoLoanPermittedException
at java.lang.Class.forName0(Native Method) ~[?:1.7.0_80]
at java.lang.Class.forName(Class.java:278) ~[?:1.7.0_80]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[mc.jar:git-Spigot-1611]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[mc.jar:git-Spigot-1611]
... 14 more
Caused by: java.lang.ClassNotFoundException: com.earth2me.essentials.api.NoLoanPermittedException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[?:1.7.0_80]
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[?:1.7.0_80]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0_80]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[?:1.7.0_80]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[mc.jar:git-Spigot-1611]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[mc.jar:git-Spigot-1611]
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[?:1.7.0_80]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[?:1.7.0_80]
at java.lang.Class.forName0(Native Method) ~[?:1.7.0_80]
at java.lang.Class.forName(Class.java:278) ~[?:1.7.0_80]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[mc.jar:git-Spigot-1611]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[mc.jar:git-Spigot-1611]
... 14 more

Juz wkleilem @GotoFinal

Opublikowano

Niedawno wgralem pod tą samą wersje i dalej to samo... Moglby ktos zrobic tego subtracta poprawnie? Mozliwe, ze jakis blad jest. Bez subtracta normalnie wczytuje. A moze w subtract nie mozna uzywac static, ale watpie w to... Nie wiem jesli mozecie sami sprobujcie. Moze uda wam sie czegos wiecej dowiedziec. Daje duzo lajkow dla mnie ten plugin wazny jest.

Opublikowano

Niedawno wgralem pod tą samą wersje i dalej to samo... Moglby ktos zrobic tego subtracta poprawnie? Mozliwe, ze jakis blad jest. Bez subtracta normalnie wczytuje. A moze w subtract nie mozna uzywac static, ale watpie w to... Nie wiem jesli mozecie sami sprobujcie. Moze uda wam sie czegos wiecej dowiedziec. Daje duzo lajkow dla mnie ten plugin wazny jest.

no ale z erroru wynika że brakuje my klasy których używasz 

Caused by: java.lang.ClassNotFoundException: com.earth2me.essentials.api.NoLoanPermittedException

zobacz czy na pewno musisz łapać te exception, i upewnij się że masz tylko jedną i poprawną wersje essentials na serverze jak i w IDE.

1438614356923701010629.png

 

Opublikowano

Jak zrobilem subtract'a bezposrednio w tej klasie co sie odwoluje do niego dziala. Ale jak zrobie static'a w Main i sie odwoluje Main.subtractdalszykod to juz nie... Dlaczego? lol Mam 20 klas i bede musial robic tego subtract'a kazdego w 1 klasie? Przeciez wyjdzie ich 20. A tak dowale do Main i static bedzie. Moze wiecie jak zrobic static aby dzialal?

Opublikowano

a sprawdzałeś czy wywalenie tego

catch(NoLoanPermittedException | UserDoesNotExistException e){

 

jest mozliwe i czy to coś da?

jak się nie da, możesz na hama dam tam Exception i łapać wszystko, ale ogólnie na pewno masz coś źle skonfigurowane z biblioteczkami lub inne wersje między IDE a serverem...

1438614356923701010629.png

 

Opublikowano

@GotoFinal no nie jestes po prostu z*******y. Dzieki stary! :D :D :D

 

Wyszlo mi takie cos chyba prawidlowe to jest?

    @SuppressWarnings("deprecation")
    public static void odejmij(String name, double d) throws NoLoanPermittedException, UserDoesNotExistException {
     Economy.subtract(name, d); 
    }
Opublikowano

 

@GotoFinal no nie jestes po prostu z*******y. Dzieki stary! :D :D :D

 

Wyszlo mi takie cos chyba prawidlowe to jest?

    @SuppressWarnings("deprecation")
    public static void odejmij(String name, double d) throws NoLoanPermittedException, UserDoesNotExistException {
     Economy.subtract(name, d); 
    }

eeem, to ogólnie jest kompletnie inna rzecz niż try/catch, to sprawia że błędy z metody zostaną przekazane dalej, czyli wtedy to metoda wywołująca tą metodę powinna łapać te błędy. (nie wszystkie błędy trzeba łapać [iDE, nawet eclipse, ci powie kiedy trzeba], i wtedy nie trzeba ich też dawać w "throws")

1438614356923701010629.png

 

Opublikowano

To znaczy ze jest negatywne tak?  xD czy ujdzie juz? lagow bugow errorow w console nie bedzie wywalac?

jak wywali jakiś z tych errorów to na pewno pojawi się w konsoli.

Ale to już twoja działka by sprawdzać poprawność wykonywanych operacji, bo opieranie się na try/catch to średni pomysł.

1438614356923701010629.png

 

Opublikowano

@GotoFinal hmmm jak teraz nie wywala errorow w console to kiedys moze je zaczac wywalac?? A moze masz jakis pomysl, aby zrobic to try catch statyczne dzialajace?

ale errory nie są po to by je ignorować...

Jak coś wywali, to znaczy że coś zrobiłeś źle, i powinieneś wtedy poszukać przyczyny, a nie użyć try/catch i zignorować.

 

Takie podejście to jak z naprawą przegrzewającego się kompa: zaczyna odpalać się "alarm" że jest np ponad 90 stopni, to szukasz tego przyczyny, a nie wyłączasz alarm i udajesz że jest ok.

1438614356923701010629.png

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...