Vis innlegg

Denne delen lar deg se alle innlegg laget av dette medlemmet. Merk at du bare kan se innlegg gjort i områder du har tilgang til.


Emner - Cybersyn

Sider: [1] 2 3
1
Minecraft / Schematic eksport forespørsel
« på: 18. Januar 2017, 16:25 pm »
Kan en op/admin eksportere schematics av regionene brutalost_ting og brutalost_creative sånn at jeg kan laste dem ned fra import/eksport grensesnittet? Takk.

2
Generelt teknisk / Bukkit API tips & tricks
« på: 31. Januar 2016, 12:26 pm »
Some of the more useful features of the Bukkit API are not very well documented outside the javadocs. I've stumbled upon quite a few:

Graphical UI using inventories
It's possible to create inventories of any size, type and title on the fly using the org.bukkit.Server.createInventory() series of functions. Combined with org.bukkit.event.inventory events and org.bukkit.entity.HumanEntity.openInventory(), you can create creative ways for players to interact with your plugin.

Scheduled tasks
You can schedule tasks to run later or repeatedly. You can also run tasks asynchronously to avoid clogging up your main thread. There are mainly two ways to schedule tasks:
Example using method a:
Kode: [Velg]
public class Broadcaster extends JavaPlugin {
    private final MyRunnable runnable = new MyRunnable(this.getServer());
   
    @Override
    public void onEnable() {
        // run task every minute (=1200 ticks)
        this.runnable.runTaskTimer(this, 0, 1200);
    }
   
    @Override
    public void onDisable() {
        // cancel task
        this.runnable.cancel();
    }
}

class MyRunnable extends BukkitRunnable {
    private final Server server;
   
    public MyRunnable(Server server) {
        this.server = server;
    }
   
    @Override
    public void run() {
        this.server.broadcastMessage("It works!");
    }
}
Example using method b:
Kode: [Velg]
public class Broadcaster extends JavaPlugin implements Runnable {
    @Override
    public void run() {
        this.getServer().broadcastMessage("It works!");
    }

    @Override
    public void onEnable() {
        // run task every minute (=1200 ticks)
        this.getServer().getScheduler().runTaskTimer(this, this, 0, 1200);
    }

    @Override
    public void onDisable() {
        // cancel all tasks scheduled by this plugin
        this.getServer().getScheduler().cancelTasks(this);
    }
}

Custom recipes
You can't create custom items, but you can add custom recipes.
Define the recipe by instantiating one of the classes implementing org.bukkit.inventory.Recipe. Then add the recipe to the server using org.bukkit.Server.addRecipe().
Some other functions for managing recipes:
Example:
Kode: [Velg]
// define recipe
public final Recipe myRecipe = new FurnaceRecipe(new ItemStack(Material.WATER_BUCKET), Material.ICE);

@Override
public void onEnable() {
    // add recipe
    this.getServer().addRecipe(myRecipe);
}

@Override
public void onDisable() {
    // remove recipe
    Iterator<Recipe> iterator = this.getServer().iterateRecipes();
    while (iterator.hasNext()) if (iterator.next() == this.myRecipe) iterator.remove();
}

I'd also like to point out org.bukkit.conversations, though I've never used it myself.

Feel free to post your own tips & tricks.

3
Minecraft / Automatisk crafting
« på: 29. Januar 2016, 20:30 pm »
Her om dagen drømte Hebelub og jeg litt om hvordan arbeidsbenk burde fungert med hoppers. Etter å ha bladd litt i javadocs ser det ikke så vanskelig ut å få til automatisk crafting med en plugin jeg er mer enn villig til å utvikle.

Men først og fremst, er dette ønsket? Passer det inn på serveren?
Hvis ja, hvordan skal den oppføre seg?

4
Minecraft / Stor flyttejobb
« på: 31. Oktober 2015, 13:12 pm »
Jeg beregnet veldig feil når jeg begynte på et prosjekt, og nå ønsker jeg å flytte alt fra og med X=2140, Y=13, Z=-834 til og med X=2226, Y=92, Z=-958 (870000 blokker) 162 blokker oppover. Lar det seg gjøre å bruke en smule magi til dette, eller blir jeg nødt til å flytte alt for hånd? D:

EDIT: På kreativkartet

5
Feil / [Fikset] Filter - "kan du hjelpe meg opp?"
« på: 18. Oktober 2015, 13:15 pm »
Hver gang jeg prøver å skrive
Sitat
kan du hjelpe meg opp?
kan du hjelpe meg, op?
eller noe i nærheten sier filteret
Sitat
[Filter] ======== ?fSe ?6/help op ?feller sp?r treet ?4========
Kanskje litt strengt?

6
Feil / Deaktiveres plugins mens det er spillere pålogget?
« på: 19. ſeptember 2015, 17:03 pm »
Når serveren starter på nytt ser det ut som om noen plugins deaktiveres før spillerne kastes ut (alle får hvite navn i noen sekunder før de kastes ut). Hvis dette er tilfelle, kan fraværet av viktige plugins som WorldGuard utnyttes.

7
Minecraft / Github-samtalen mellom Floyd og BrutalOst
« på: 30. August 2015, 15:49 pm »
Er nå 100% i sync med github igjen... omsider.
Misforstår jeg, eller har du glemt git push? Har ikke skjedd noe der siden 14. mai...

8
Minecraft / Bukkits død
« på: 03. Mai 2015, 13:14 pm »
Informasjon rundt Bukkits død er ganske vag og preget av personlige meninger. Derfor har jeg bestemt meg for å skrive om det så nøytralt som mulig.

Si gjerne i fra om jeg tar feil eller du er uenig i noe.

Bukkits lisens
CraftBukkit er lisensiert under LGPL. Bukkit er lisensiert under GPL. I teorien vil det si at programmer som linker med Bukkit (altså alle plugins) også må være lisensiert under GPL. Dette virker litt opp-ned - vanligvis lisensieres kjernen under GPL og APIet under LPGL. Bukkit har imidlertid sagt at de aldri vil bruke lisensen mot plugins, men det har ingen juridisk betydning.
http://bukkit.org/threads/what-license-is-the-bukkit-project-under.154/

Minecrafts EULA
Minecrafts EULA er ikke noe nytt, men juni 2014 bestemte Mojang seg plutselig for å bruke den mot servere som tar betalt (ekte penger) for fordeler i spillet. Dette gjorde mange servereiere sure.
Senere gjorde Mojang slik at man eksplisitt må godta EULAen for å kjøre Minecraft serveren.
https://account.mojang.com/documents/minecraft_eula
https://mojang.com/2014/06/lets-talk-server-monetisation/
https://mojang.com/2014/06/lets-talk-server-monetisation-the-follow-up-qa/
http://notch.net/2014/06/literally-worse-than-ea/

Nedleggelsen av Bukkit
21. august 2014 kunngjorde EvilSeph (grunnlegger av Bukkit, ansatt i Mojang) nedleggelsen av prosjektet.
http://bukkit.org/threads/bukkit-its-time-to-say.305106/

Mojang eier Bukkit
Som svar på EvilSephs kunngjøring, innrømmet _jeb (utvikler av Minecraft) at Mojang hadde kjøpt Bukkit når de ansatte Bukkit-teamet i 2012, og at EvilSeph dermed ikke hadde rett til å legge det ned. Dinnerbone (grunnlegger av Bukkit, ansatt i Mojang) tar på seg oppgaven å fortsette prosjektet.
http://bukkit.org/threads/bukkit-its-time-to-say.305106/
https://storify.com/lukegb/the-tale-of-bukkit-for-minecraft-1-8

DMCA
5. september 2014 sendte Wolverness (utvikler av CraftBukkit, ansatt i Multiplay) inn en DMCA takedown av CraftBukkit og Spigot-Server som han begrunner med at de linker med Minecraft Server som er proprietær programvare.
https://github.com/github/dmca/blob/master/2014-09-05-CraftBukkit.md
http://bukkit.org/threads/mojang-and-the-bukkit-project.309715/

9
Jeg sliter med å forhåndsvise innlegg her i forumet. Når jeg trykker "Forhåndsvisning" nedenfor, ved siden av "Legg til innlegg", sier forumet bare "Henter forhåndsvisning..." uten noe resultat.

Jeg bruker Firefox 37.0.2. Det ser ut til å virke i Chrome.

Kanskje http://www.simplemachines.org/community/index.php?topic=528614 er relevant?

10
Minecraft / IRC var en fiasko, men hva med SSH?
« på: 22. Mars 2015, 16:51 pm »
Det hadde vært kjekt å kunne holde øye med chatten selv om man ikke har en PC tilgjengelig. Tidligere fant vi ut at IRC ikke duger til dette (se Steng irc), men kanskje det hadde vært mulig med SSH?

I stedet for å "lytte til" en IRC-server, vil serveren selv kjøre en SSH-server. Dette er kanskje tyngre for serveren, men til gjengjeld gir det serveren mer kontroll.

Slik fungerer det i grove trekk:
Man logger på SSH med Minecraft-brukernavnet sitt, men i stedet for å bekrefte at du er hvem du utgir deg for å være ved hjelp av Minecraft-passordet, utveksles det TLS-nøkkelpar. Dermed vil serveren (eller potensielle mellommenn) aldri få tak i Minecraft-passordet ditt.

Nøkkelparet genereres av klienten. Det består av en privat nøkkel og en offentlig nøkkel. All kommunikasjon fra server til klient krypteres med den offentlige nøkkelen, og kan dekrypteres med den private nøkkelen. Det er også mulig (og anbefalt) å beskytte nøkkelen med et passord, slik at ingen kan utgi seg for å være deg selv om de får tak i den private nøkkelen.

På samme måte har også serveren et eget nøkkelpar. Kommunikasjon fra klient til server krypteres med serverens offentlige nøkkel, og kan dekrypteres med serverens private nøkkel.

Klientens offentlige nøkkel lastes opp til serveren og knyttes til brukernavnet ditt når du kjører en bestemt kommando med den offentlige nøkkelen som argument (når du er logget inn med Minecraft). Når du senere logger inn med SSH, sender serveren en melding kryptert med den offentlige nøkkelen knyttet til brukernavnet ditt. For å dekryptere denne medlingen, må klienten bruke den private nøkkelen. Hvis klienten klarer å dekryptere meldingen, betyr det at den har den riktige private nøkkelen, og dermed er det bekreftet at du er hvem du utgir deg for å være.

Les mer:
http://security.stackexchange.com/questions/20803

Selvsagt skal ikke serveren kjøre en vanlig SSH-server som gir tilgang til hele systemet. SSH-serveren det er snakk om styres av en Bukkit plugin, og gir klienten tilgang til kun Minecraft chat og kommandoer.

Det er også verdt å legge merke til at IRC-brukere regnes som en egen gruppe med separate permissions, mens SSH-brukerne er knyttet til og fungerer som vanlige Minecraft brukere.

Supert om dette lar seg gjøre!

11
Minecraft / Bugs - la oss hjelpe!
« på: 19. Mars 2015, 16:05 pm »
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.

12
Generelt teknisk / POSIX på Arduino
« på: 14. Mars 2015, 23:47 pm »
Jeg jobber med å implementere POSIX på Arduino. Jeg prøver å gjøre det så lite ressurskrevende som mulig, samtidig som kildekoden er åpen, lettlest og vel dokumentert. Jeg har også planer om å legge et lag med et Arduino-aktig grensesnitt oppå POSIX, slik at det skal være enklere å lage programmer.

Hva er POSIX?

POSIX er en standard for hvordan operativsystem virker. Hensikten med en slik standard er at programmer kan virke på flere forskjellige operativsystem. Operativsystem som følger ("implementerer") POSIX eller deler av POSIX kalles ofte "Unix-like". Linux og Mac OS X er eksempler på operativsystem som følger POSIX.

Hvorfor POSIX på Arduino?

POSIX på Arduino slår flere fluer i en smekk. For det første er det mange som bruker Arduino for å lære seg programmering. POSIX på Arduino bygger en bro mellom Arduino og POSIX, slik at man kan bruke elementer man lærer i Arduinoland for å lage programmer for Linux, og også bruke programmer laget for Linux på Arduino.

Det hadde vært morsomt om flere ville hjelpe til med dette prosjektet. Kildekoden er selvfølgelig åpen på GitHub.

13
Generelt teknisk / Grensesnitt og implementering
« på: 06. Mars 2015, 16:54 pm »
Følgende ble opprinnelig skrevet i forbindelse med RedHack, men jeg tenkte at temaet var så generelt at det kunne flyttes hit.

Teknologi kan stort sett deles opp i grensesnitt og implementering. Grensesnittet bestemmer hva som skjer, implementeringen bestemmer hvordan det skjer. For eksempel er grensesnittet for et dørhåndtak at døra åpnes når man trykker det ned, mens hvordan dørhåndtaket åpner døra (hva som skjer inne i døra) bestemmes av implementeringen, som kan variere fra dør til dør. Som regel bryr vi oss ikke om hva som skjer inne i døra, bare at den gjør som den skal. Men det er viktig å ha noen som vet hva som skjer inne i døra, for hva kan vi gjøre når dørhåndtaket ikke lenger virker som det skal?

14
Minecraft / RedHack - en datamaskin av Redstone
« på: 21. Februar 2015, 01:44 am »
Jeg jobber foreløpig med å bygge en datamaskin av Redstone på kreativkartet, basert på Hack-arkitekturen beskrevet i boka The Elements of Computing Systems (du kan lese den viktigste halvdelen av boka her, men hvis du er interessert anbefaler jeg deg å skaffe hele boka).

Fremgang 05.03.2015:


Hvis du vil hjelpe til eller bare se på, kan du skrive
Kode: [Velg]
/warp redhack.

Grensesnitt kontra implementering

Status

2. Boolsk aritmetikk
  • HalfAdder
  • FullAdder
  • Add16
  • Inc16
  • ALU
3. Sekvensiell logikk
  • Bit
  • Register
  • RAMn
  • PC
5. Dataarkitektur
  • CPU
  • ROM32K
  • Screen
  • Keyboard
  • Memory
  • Computer
overstrekk = allerede bygget
fet = bygges nå

Vi har rammet inn hver chip med rosa ull, og organisert dem i rekker etter kapittel.

I/O
Boka sier at brukeren kan kommunisere med datamaskinen ved hjelp av en skjerm. Skjermen er 512 piksler bred og 256 piksler høy, og hver piksel representeres av 1 bit (dvs. svart-hvit). Skjermen er tilordnet alt dataminne fra og med 0x4000 til og med 0x5FFF. Dessverre vil en slik skjerm i Minecraft være ganske krevende, og for det meste ubrukelig. I stedet for skjermen, tilordnes dette minnet general-purpose I/O. Dette kan brukes til å koble datamaskinen til helt vanlige redstone-kretser, som dører, dispensere, lamper, knapper og til og med andre datamaskiner.

Det vil fortsatt være mulig å ta i bruk tastaturet i 0x6000.

Programmering
Instruksene datamaskinen forstår er godt dokumentert her.

Det er også mulig å programmere datamaskinen i et språk kalt assembly, som er beskrevet her. Poenget med assembly er å oversette maskinspråk slik at det er lettere å forstå for mennesker, samtidig som det har et grensesnitt som ligner maskinspråket. Derfor er assembly en 1-til-1-oversettelse, og det kan oversettes til maskinspråk ved hjelp av en assembler.

Det finnes også en Jack-kompilator for Hack-arkitekturen. Jack er et programmeringsspråk som ligner på Java. Det er enda lettere å forstå for mennesker enn assembly, men det ligner mindre på maskinspråk. Kompilatoren oversetter Jack-kildekode til Hack-maskinkode. Jack er dessverre beskrevet i den delen av boka som ikke er gratis, men om noen ønsker det skal jeg prøve å forklare etter beste evne.

Assembleren og Jack-kompilatoren finner du her sammen med et program som lar deg kjøre Hack-maskinkode rett på PCen din og mange andre nyttige verktøy.

Det er verdt å merke seg at Redstone går for sakte til at datamaskinen kan gjøre noe særlig nytte for seg. Poenget med dette er ikke å gjøre det mulig å spille Minecraft på Minecraft, men å lære meg selv og (forhåpentligvis) andre hvordan datamaskiner virker og at det er mange likheter mellom Redstone og teknologien hverdagen vår er bygget på.

For å gi deg en liten idé om hvor treig den er: 10 ticks = 1 sekund. Adderen som brukes har en carry på 2 ticks. 16 slike skal kobles sammen, altså 32 ticks. Og det er bare adderen. Med multiplekserne kan det fort gå over 40 ticks per instruksjon. I den første modellen vil vi fokusere mest på størrelse, men vi planlegger å bygge en mindre kompakt modell med 0-ticks carry.

15
Minecraft / Den derre Usjer-modden, ja
« på: 18. Februar 2015, 00:11 am »
Jeg fant nylig ut at jeg for noen år siden lovet å bringe Usher til spillet. Om jeg ikke husker feil var det en ustabil oppdatering av Techne som gjorde modellen min av Usher ubrukelig. Hvis min Techne Fu ikke er for rusten, kan dere vente dere en release før uka er slutt. Imens kan dere jo følge med (følge meg) på GitHub hvor jeg kommer til å legge ut kildekoden (mens jeg jobber på den). Jeg kommer til å bruke en MIT-lisens, slik at du kan bruke den i dine egne mods. Jeg åpner også for pull requests.

forgotten-promises på GitHub

Sider: [1] 2 3