Skrevet av Emne: Bugs - la oss hjelpe!  (Lest 23949 ganger)

Utlogget Cybersyn

  • n00b
  • *
  • Innlegg: 2
  • Karma: +1/-0
    • Vis profil
    • localhost
Bugs - la oss hjelpe!
« på: 19. Mars 2015, 16:05 pm »
  • [applaud]0
  • [smite]0
  • Vi har nå satt opp en organisasjon på GitHub som kan brukes til samarbeid om plugins. For å bli medlem av organisasjonen på GitHub må du legge inn GitHub-brukernavnet ditt i denne tråden.

    Med mindre noe annet er spesifisert, følger repoene GitHub Flow og mer eller mindre stilen beskrevet i denne artikkelen.

    Vi regner origin/master som hovedgrenen hvor kildekoden ved HEAD alltid reflekterer en produksjonsklar tilstand.

    Vi regner origin/develop som hovedgrenen hvor kildekoden ved HEAD alltid reflekterer en tilstand med de ferskeste endringene under utvikling for neste produksjonsklare tilstand. Versjonsnummer fra denne grenen ender alltid med -SNAPSHOT, f. eks. 1.2-SNAPSHOT.

    Når kildekoden i origin/develop når en produksjonsklar tilstand, opprettes det en pull request (PR) fra den til origin/master. Før PRen godkjennes, må kildekoden gjøres helt klar. Dette innebærer blant annet å fjerne -SNAPSHOT fra versjonsnummeret. Etter PRen er godkjent, økes versjonsnummeret i origin/develop for å legge til rette for nye endringer.

    Kode: [Velg]
    Bob/develop        O---O-----------O
                      /     \           \
    origin/develop   O-------O-------O---O--->
                      \       \     /
    Alice/develop      O---O---O---O

                     <------- tid ----------->

    Bob/master               O---O
                            /     \
    origin/master      O---O-------O-------O--->
                      /             \     /
    origin/develop   O-------O-------O---O--->

    Du trenger

    1. Fork prosjektet på GitHub


    2. Importer prosjektet i Eclipse
    File > Import...
    Maven > Check out Maven Projects from SCM


    Høyreklikk prosjekt > Team > Switch To > Other...


    3. Gjør endringer
    Husk å logge (commit) endringer så ofte det passer.
    Høyreklikk prosjekt > Team > Commit...

    Gi en passende beskrivelse (commit message).


    4. Last opp (push) endringene til GitHub
    Høyreklikk prosjekt > Team > Push to Upstream

    5. Send en pull request til organisasjonen




    Hvis det skal være en hotfix, bytter du ut develop med master i trinn 2 og 5.



    Det opprinnelige forslaget:
    Mange av feilene som oversvømmer Rapportering av feil-tråden er knyttet til ATCs hjemmelagde plugins, og jeg regner med at grunnen til at få av dem fikses er at Floyd ikke har like mye fritid som vi som bruker dem. Derfor hadde det vært supert om det hadde blitt lagt til rette for at fellesskapet kan bidra til å forbedre plugins direkte.

    Mange av de hjemmelagde pluginsene har åpen kildekode, noe som er helt topp, men jeg ønsker at dette skal tas et skritt videre og legge til rette for at fellesskapet ikke bare kan lese kildekoden, men også endre den.

    Som sagt ville det vært supert om dette kunne ordnes.
    « Siste redigering: 07. Mai 2015, 20:11 pm av BrutalOst »



    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Bugs - la oss hjelpe!
    « Svar #1 på: 19. Mars 2015, 16:10 pm »
  • [applaud]0
  • [smite]0
  • Jeg ser at PetitionPlugin allerede finnes på GitHub, og jeg tenker GitHub er midt i blinken for dette.
    « Siste redigering: 21. Mars 2015, 15:01 pm av BrutalOst »



    Utlogget SpeedNinja

    • Minecraft-Operators
    • Wizard
    • ***
    • Innlegg: 319
    • Karma: +2/-0
    • Også kjent som Purrington
      • MSN Messenger - lasse_molberg@hotmail.com
      • Vis profil
    Sv: Bugs - la oss hjelpe!
    « Svar #2 på: 19. Mars 2015, 16:46 pm »
  • [applaud]0
  • [smite]0
  • Jeg kan ikke noe om plugins og koder osv.. Men jeg liker idèen


    One bright morning
    in the middle of the night
    two dead boys came out to fight
    they stood back to back
    and faced each other
    drew their swords
    and shot eachother
    the deaf policeman heard the noise
    and came to kill
    those two dead boys
    If u dont believe my story
    its true ask the blind man

    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Bugs - la oss hjelpe!
    « Svar #3 på: 19. Mars 2015, 17:01 pm »
  • [applaud]0
  • [smite]0
  • Om man ikke kan det, er jo følelsen av å bidra kanskje en god motivasjon til å lære?



    Utlogget Emilpoika

    • Moderator
    • Guru
    • *****
    • Innlegg: 1.278
    • Karma: +12/-0
    • #Emilpoika
      • Vis profil
      • Emilpoikas Facebookside
    Sv: Bugs - la oss hjelpe!
    « Svar #4 på: 19. Mars 2015, 17:15 pm »
  • [applaud]0
  • [smite]0
  • Man kan laste dem ned fra http://minecraft.atc.no/bin/plugins/ (Tenkte jeg skulle skrive hvor man får pluginsene fra, i og med at du snakker om dem...)
    Er det ikke mulig å endre på programmene etter man har lastet dem ned? (Åpne dem, kopiere/endre deler av koden og lagre).
    I så fall kan man jo bare gjøre det å sende dem til floyd på den måten man syns er best.
    Selvfølgelig blir ingen å få direkte tilgang til å endre kildekoden til plugins som kjøres på server-maskinen.


    "So much time on ATC alone, and yet I've never been to me."
    "Half a bee, philosophically, must ipso facto half not be. But half the bee has got to be, vis-à-vis its entity - d'you see? But can a bee be said to be or not to be an entire bee when half the bee is not a bee, due to some ancient injury?

    Utlogget Floyd-ATC

    • Livstidsdiktator
    • Administrator
    • Guru
    • *****
    • Innlegg: 542
    • Karma: +12/-0
      • MSN Messenger - floyd@atc.no
      • Vis profil
      • floyd.atc.no
      • E-post
    Sv: Bugs - la oss hjelpe!
    « Svar #5 på: 19. Mars 2015, 17:16 pm »
  • [applaud]0
  • [smite]0
  • Jeg lærte det selv ved å plukke fra hverandre andres plugins.
    • Alle plugins på serveren legges ut automatisk hver dag på http://minecraft.atc.no/bin/plugins/
    • Alle JAR-filer er egentlig ZIP archives som kan åpnes med 7zip, WinZip, WinRAR eller lignende
    • Alle mine hjemmelagde plugins inkluderer kildekode

    Føl dere fri, plukk ting fra hverandre og lek med dem. Vedkommende som la PetitionPlugin på GitHub spurte om lov til å gjøre det men det var fordi han var redd for å tråkke noen på tærne. Ikke vær det. Kildekoden er inkludert nettopp fordi jeg ønsker å gi den bort. Det eneste jeg ber om er å bli kreditert for originalkoden.

    Dersom noen modifiserer og forbedrer koden så send gjerne resultatet tilbake til meg, enten i form av en patch eller en ferdig kompilert plugin med oppdatert kildekode inni. Bare IKKE send meg en link til GitHub med beskjed om å laste ned og kompilere selv, for det kommer nok ikke til å skje... :-)

    Trenger du et sted å starte? Hva med å fikse TipsPlugin? Egentlig en helt triviell plugin men samtidig den som irriterer meg mest. En ting er at æøå driver meg til vannvidd men den har også et problem med linjeskift. Den bryter sammen hver eneste gang jeg flytter til en annen Linux-maskin, trolig på grunn av et eller annet med locale-settings i Java og jeg ser ikke ut til noensinne å finne både tid og motivasjon til å fikse det selv.


    -Floyd.

    --
    Det finnes 10 typer mennesker;
    de som forstår binærtall, de som ikke gjør det, og de som forstår Grey code.

    Utlogget Floyd-ATC

    • Livstidsdiktator
    • Administrator
    • Guru
    • *****
    • Innlegg: 542
    • Karma: +12/-0
      • MSN Messenger - floyd@atc.no
      • Vis profil
      • floyd.atc.no
      • E-post
    Sv: Bugs - la oss hjelpe!
    « Svar #6 på: 19. Mars 2015, 17:55 pm »
  • [applaud]0
  • [smite]0
  • Når vi først er i gang, her er en trinn-for-trinn fremgangsmåte som funker. Det er godt mulig det går an å gjøre det enklere med GitHub, i så fall må noen gjerne skrive om det.

    0. Koden trenger JDK 1.7 for å fungere. Seriøst, jeg får det ikke til med 1.8. Vet du hvordan? Skriv i vei. Jeg må bruke 1.7.

    1. Last ned og installer Eclipse fra http://eclipse.org

    2. File -> New -> Java Project -> Gi den et navn (f.eks. "TipsPlugin")

    3. Høyreklikk på prosjektet, Properties. Klikk på "Java Build Path", "Libraries". "Add External JARs...". For å lage en Bukkit/Spigot plugin må du henvise til bukkit-x.x.x-Rx.x.jar som du må laste ned fra nettet. Jo nyere versjon jo bedre. Dette er API'et til Bukkit/Spigot, dvs. den inneholder hver eneste metode du har tilgang til inne i Minecraft-serveren. Hvis dette ikke sier deg noe, slapp av, du vil se det etterhvert.

    4. Høyreklikk på prosjektet, New -> File -> "plugin.yml". Bukkit/Spigot krever at alle plugins har denne filen. Kopier eksisterende eller Google for å se hva den må inneholde.

    5. Høyreklikk på prosjektet, New -> Package -> f.eks. "no.atc.floyd.bukkit.tips". Dette navnet må være unikt fordi det danner ditt eget "namespace" i Java. Bruk gjerne "no.atc.DITTNAVN.blablabla", alle mine starter med "no.atc.floyd.blablabla".

    6. For hver klasse (= java-fil), høyreklikk på "package" -> New -> Class -> Navn på klassen, f.eks. "TipsPlugin". Må matche navnet på java-filen, i dette tilfellet "TipsPlugin.java".

    7. Alle java-klasser må ha en "constructor", denne må være "public", returnerer ingenting og inneholder alle attributter, metoder og funksjoner for klassen. En plugin til Bukkit/Spigot må dessuten ha en del andre egenskaper så her bør du ta utgangspunkt i eksisterende kode.

    8. I prinsippet må en plugin ha følgende metoder:
    - onEnable() som kalles opp når Bukkit/Spigot laster den inn
    - onDisable() som kalles opp når Bukkit/Spigot avslutter
    - @EventHandler metoder for å håndtere Events

    9. Hvis du endrer "plugin.yml" må du trykke F5 for å refreshe prosjektet. Ikke spør meg hvorfor.

    10. For å kompilere en JAR-fil, høyreklikk på prosjektet -> Export. Velg "JAR file", Next, angi filnavn.jar (NB! Pass på når du bytter mellom prosjekter!!!), kryss av for "Export generated class files" og "Export Java source files", Finish.

    Alle event handlers merkes med @EventHandler, en makro definert i bukkit-*.jar som gjør den nødvendige magien for at pluginen skal fungere. Alle metoder med denne makroen må akseptere et objekt arvet fra klassen "org.bukkit.event.Event". Det er hundrevis av dem og du kan finne oversikter over dem på nettet. Ideen med event-klassen er at event-objektet inneholder alt du trenger å vite om eventen, f.eks. hvilken spiller eller blokk som er involvert. Dersom eventen kan kanselleres (f.eks. PlayerLoginEvent eller BlockPlaceEvent) så inneholder den også metoder for dette.

    Resten dreier seg bare om å utforske API'et og skrive robust kode med skikkelig feilhåndtering. Ta høyde for at filer ikke finnes, navn er feil stavet, parametere mangler eller er av feil type osv.

    Alle oppslag du gjør mot Bukkit/Spigot KAN returnere NULL, dvs. en ugyldig peker som vil få pluginen til å tryne hvis du forsøker å bruke den. Eksempel:

    Kode: [Velg]
    Player p = event.getPlayer();
    Location loc = p.getLocation(); // <-- Hvis "event" ikke inneholder en gyldig spiller vil dette tryne
    World w = loc.getWorld(); // <-- Hvis spilleren ikke er ferdig innlogget vil dette tryne
    // gjør noe med w

    Sammenlign med dette:

    Kode: [Velg]
    Player p = event.getPlayer();
    if (p != null) {
      Location loc = p.getLocation();
      if (loc != null) {
        World w = loc.getWorld();
        // gjør noe med w
      } else {
        getLogger().info("Ugyldig lokasjon for spiller "+p.getName());
      }
    } else {
      getLogger().info("Ugyldig spiller");
    }

    « Siste redigering: 19. Mars 2015, 18:15 pm av Floyd-ATC »


    -Floyd.

    --
    Det finnes 10 typer mennesker;
    de som forstår binærtall, de som ikke gjør det, og de som forstår Grey code.

    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Bugs - la oss hjelpe!
    « Svar #7 på: 19. Mars 2015, 18:08 pm »
  • [applaud]0
  • [smite]0
  • Vedkommende som la PetitionPlugin på GitHub
    Er ikke dette deg da?



    Utlogget Floyd-ATC

    • Livstidsdiktator
    • Administrator
    • Guru
    • *****
    • Innlegg: 542
    • Karma: +12/-0
      • MSN Messenger - floyd@atc.no
      • Vis profil
      • floyd.atc.no
      • E-post
    Sv: Bugs - la oss hjelpe!
    « Svar #8 på: 19. Mars 2015, 18:17 pm »
  • [applaud]0
  • [smite]0
  • Vedkommende som la PetitionPlugin på GitHub
    Er ikke dette deg da?

    Hmm jo. Mulig det var noen som ba meg legge det ut så han kunne forke. Husker ikke...  ???
    Har aldri klart å venne meg til å bruke versjonsstyring, det er en av mine store svakheter.
    « Siste redigering: 19. Mars 2015, 18:19 pm av Floyd-ATC »


    -Floyd.

    --
    Det finnes 10 typer mennesker;
    de som forstår binærtall, de som ikke gjør det, og de som forstår Grey code.

    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Bugs - la oss hjelpe!
    « Svar #9 på: 19. Mars 2015, 18:19 pm »
  • [applaud]0
  • [smite]0
  • Som en ekte kontrollfrik opprettet jeg en organisasjon på GitHub: https://github.com/Ano-Tech-Computers

    Det var helt nødvendig for å tilfredsstille hjernen min.



    Utlogget Floyd-ATC

    • Livstidsdiktator
    • Administrator
    • Guru
    • *****
    • Innlegg: 542
    • Karma: +12/-0
      • MSN Messenger - floyd@atc.no
      • Vis profil
      • floyd.atc.no
      • E-post
    Sv: Bugs - la oss hjelpe!
    « Svar #10 på: 19. Mars 2015, 18:32 pm »
  • [applaud]0
  • [smite]0
  • Som en ekte kontrollfrik opprettet jeg en organisasjon på GitHub: https://github.com/Ano-Tech-Computers

    Det var helt nødvendig for å tilfredsstille hjernen min.

    Helt i orden, men siden den bruker "mitt" navn håper jeg du gir meg nødvendige rettigheter :-)


    -Floyd.

    --
    Det finnes 10 typer mennesker;
    de som forstår binærtall, de som ikke gjør det, og de som forstår Grey code.

    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Bugs - la oss hjelpe!
    « Svar #11 på: 19. Mars 2015, 20:37 pm »
  • [applaud]0
  • [smite]0
  • Helt i orden, men siden den bruker "mitt" navn håper jeg du gir meg nødvendige rettigheter :-)

    Selvfølgelig, GitHub skal visstnok føre deg opp som eier automatisk når du takker ja til invitasjonen :)

    Andre som ønsker å bidra kan poste en lenke til GitHub-profilen sin her.
    Meg: https://github.com/osvein
    « Siste redigering: 19. Mars 2015, 21:03 pm av BrutalOst »



    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Bugs - la oss hjelpe!
    « Svar #12 på: 21. Mars 2015, 11:46 am »
  • [applaud]0
  • [smite]0
  • Det ser ut til at http://mc.atc.no/bin/plugins/PetitionPlugin.jar ikke inkluderer kildekode. Hvis https://github.com/FloydATC/Bukkit-PetitionPlugin er oppdatert vil du kanskje forke den i organisasjonen?
    « Siste redigering: 21. Mars 2015, 14:58 pm av BrutalOst »



    Utlogget Floyd-ATC

    • Livstidsdiktator
    • Administrator
    • Guru
    • *****
    • Innlegg: 542
    • Karma: +12/-0
      • MSN Messenger - floyd@atc.no
      • Vis profil
      • floyd.atc.no
      • E-post
    Sv: Bugs - la oss hjelpe!
    « Svar #13 på: 21. Mars 2015, 11:52 am »
  • [applaud]0
  • [smite]0
  • PetitionPlugin vedlikeholdes ikke lenger av meg og ble på et tidspunkt oppdatert fra bukkit.org
    http://dev.bukkit.org/bukkit-plugins/petitionplugin/

    Litt skuffende at kildekoden ikke lenger er inkludert, det var hele poenget :-(





    -Floyd.

    --
    Det finnes 10 typer mennesker;
    de som forstår binærtall, de som ikke gjør det, og de som forstår Grey code.

    Utlogget Cybersyn

    • n00b
    • *
    • Innlegg: 2
    • Karma: +1/-0
      • Vis profil
      • localhost
    Sv: Bugs - la oss hjelpe!
    « Svar #14 på: 06. April 2015, 22:14 pm »
  • [applaud]0
  • [smite]0
  • Koden trenger JDK 1.7 for å fungere. Seriøst, jeg får det ikke til med 1.8. Vet du hvordan? Skriv i vei. Jeg må bruke 1.7.
    Hos meg kompilerer det fint på JDK 8. Hva skjer når du prøver?