Beiträge von KleinCrafter

    Ömm input = minimaler und maximaler punkt, ich dfange mit dem minimum an und höre beim maximum auf.
    Keine probleme mit sand / gravel da dieser von unten nach oben schicht für schicht gesetzt wird.


    Ich habe dafür aktuell neue commands erstellt, bin aber noch nicht zufrieden mit der arbeitsweise..
    Werde es morgen überarbeiten damit der server es in einer akzeptablen zeit hinbekommt.
    Imoment siet es so aus:

    Code
    /**     * Sets all the blocks inside a region to a certain block type.     *     * @param region     * @param pattern     * @return number of blocks affected     * @throws MaxChangedBlocksException     */    public int setBlocks(Region region, Pattern pattern, LocalSession session, LocalPlayer player, EditSession editSession) throws MaxChangedBlocksException {    	BlockScheduler bs = new BlockScheduler(region, pattern, session, player, editSession);    	int tmp = Bukkit.getScheduler().scheduleSyncRepeatingTask(Bukkit.getPluginManager().getPlugin("WorldEdit"), bs, 0, 5);    	bs.setID(tmp);    	return tmp;    }    private class BlockList {    	public int x, y, z;    	public BlockList(int x, int y, int z) {    		this.x = x;    		this.y = y;    		this.z = z;		}    }    private class BlockScheduler implements Runnable {    	private int id = 0;    	private Region region;    	private Pattern pattern;    	private LocalSession session;    	private LocalPlayer player;    	private EditSession editSession;    	private long count = 0;    	private ArrayList<BlockList> bl = new ArrayList<BlockList>();    	public BlockScheduler(Region region, Pattern pattern, LocalSession session, LocalPlayer player, EditSession editSession) throws MaxChangedBlocksException {    		this.region = region;    		this.pattern = pattern;    		this.session = session;    		this.player = player;    		this.editSession = editSession;            Vector min = region.getMinimumPoint();            Vector max = region.getMaximumPoint();            int minX = min.getBlockX();            int minY = min.getBlockY();            int minZ = min.getBlockZ();            int maxX = max.getBlockX();            int maxY = max.getBlockY();            int maxZ = max.getBlockZ();            for (int x = minX; x <= maxX; ++x) {                for (int y = minY; y <= maxY; ++y) {                    for (int z = minZ; z <= maxZ; ++z) {                        bl.add(new BlockList(x, y, z));                    }                }            }		}    	public void setID(int id) {    		this.id = id;    	}		@Override		public void run() {			for(int tick = 0; tick <= 1000; tick++) {				if (bl.size() <= 0) {					finish();					return;				}				BlockList bl = this.bl.get(0);                Vector pt = new Vector(bl.x, bl.y, bl.z);                world.checkLoadedChunk(pt);                if (region.getWorld().setBlock(pt, pattern.next(pt), true)) {                	++count;                }                this.bl.remove(0);			}			if (this.bl.size() <= 0) {				finish();				return;			}		}		public void finish() {			player.printDebug("Es wurden " + count + " Bl\u00F6cke ge\u00E4ndert.");			Bukkit.getScheduler().cancelTask(id);		}    }



    //TODO:
    selbstgeschriebene Liste die mit einem long arbeitet
    Eine statische liste die alle SetTime befehler hinereinander abarbeitet.
    Einen befehl hinzufügen, der denn stand der prozedur abfragt
    Einen befehl hinzufügen, der anzeigt wieviele prozesse


    Kleiner

    Achso, ja habe ich .. leider passiert nüx -.- er füht denn scheduller zwar aus aber er ändert keine blöcke .. ich denke mal das WE mit einer session arbeitet die zu früh beendet wird.. um mich darein zu lesen und das so zu ändern das es läuft dauert mir zu lange und ich arbeiter erstmal die restlichen sachen ab.. müssen sie die läute ebend mit WE zügeln :winking_face:


    Aber ich kann ja mal einen eigenen befehl einfügen oO
    Hmm, ja das mache ich doch gleich mal, selber setzen und nicht die funktion von WE nehmen, mal sehen was daraus wird...


    //edit
    xD Habe es geschaft es zeit versetzt zu setzen, leider ohne undo / redo funktion xD code werde ich am wochenende posten, bis dahin werde ich noch gucken ob es besser ist oder nicht.. (was passiert wohl wenn ich ausversehen mal 10K x 10K makiere? xD ich werde es morgen testen xD


    Kleiner

    Hallo Leute
    WorldEdit ist ein Programm um die Welten durch befehle zu bearbeiten.
    Der einfachste Befehl ist dort der "//set [Block]:[Data]" Befehl
    Diesen nutzen wir auf dem server sehr oft... wenn eine zu große Region makiert wurde hat der server nicht genug speicher um diese setzen zu können..


    Auf grund dessen möchte ich diesen befehl nun so ändern dass man damit unentlich viele blöcke setzen kann..
    Der Basis Befehl siet so aus:


    Nun ja, die Programmierer unter euch sehen schon warum es zu crashs kommt oder? xD


    Warum ich es hier öffentlich hin schreibe? Ich möchte einfach mal zeigen was ich denn so mache.
    Und damit ihr mir helfen könnt xD ich habe bisher nur alles theoretisch geplant, wie es denn so läuft weiß ich nicht...


    Nun meine Grund Idee um dieses Problem zu lösen:
    Alle Blöcke die darin enthalten sind in einer liste speichern und block für block diese abarbeiten mit einem Bukkit Scheduler der jeden Tick "100" Blöcke setzt.
    Theoretisch kann man nun beim aufbauen der zu setzenden blöcke zugucken und durch einen weiteren befehl diesen aufbau abbrechen...


    Also einen Neuen Befehl hinzufügen um das setzen abbrechen zu können.
    Mal sehen was WE damit in der Wirklichkeit raus macht xD


    Oder hat jemand eine Idee die noch einfacher geht?
    Performanter?
    Schneller muss es nicht mal gehen, hierbei geht es darum das der Server nicht crashen kann durch WE arbeiten.


    Kleiner

    Warum ich es interessant finde?
    Auch wenn ich es noch nicht gespielt habe finde ich es interessiert, ein schiff zu bauen, das sogar kaput gehen kann, aber nicht wie jedes game einfach Boom, es geht halbwegs realistisch kaput, will man fliegen, muss man es richtig bauen.
    Es gibt schon ein multiplayer, ich freu mich darauf schiffe zu bauen um Wettrennen zu machen, pakour rennen oder einfach mal crash games xD
    Und es ist ein game wo ich nicht überlegen muss wie ich fehler ausbessern muss, einfach mal wieder bauen xD


    Kleiner

    Warum der nether jetzt 1:1 mit dem freebuild liegt?
    Ganz einfach, es war irgendwann ein vorschlag mit denn guten begründungen:
    - man muss sich nicht mehr die portale mit denn nachbarn teilen
    - man kann sagen "dies ist mein portal"
    - dadurch kann jeder in seinem freebuild bereich das Quarz und Glowstone farmen
    - weniger gemäcker das dass nether leer sei
    - jeder hat die chance auf eine eigene nether-festung


    nachteiel:
    - das nether als abkürzung zu nutzen ist nicht mehr möglich.


    reichen die begründungen?


    Kleiner

    Jeder Shop Besitzer der item-frames mit items hatte, wird diese in einer kiste finden, da items aus einem frame droppen können... (mojang -.-) ...
    Soltet ihr es ausnutzen um euch irgendwo zu bereichern wird dies mit einem temporären ban bestraft!!
    Solte euch ausversehen ein item droppen, macht ihr /list und guckt ob der besitzer oder ein team mitglied online ist.
    Schreibt ein team mitglied an und übergebt ihm die items mit der information wo ihr es her habt (F3 Drückern und die X, Y und Z position aufschreiben)


    Kleiner

    Netherportale:
    Netherportale können nurnoch vom freebuild aus erschaffen werden. entlich wieder normal xD
    Die position des Portals ist 1:1.


    die position im freebuild ist auch im nether.


    Kleiner

    So der Server ist nun auf 1.7.
    Leider musste ich die Kopf Arena schliessen da es zu zeit nicht möglich ist köpfe zu erzeugen -.-
    ich werde mich die tage mal ran setzen und versuchen es zu fixen, bis dahin lebt mit denn jetzigen köpfen..


    Kleiner

    Der server wird wahrscheinlich von 20Uhr bis morgen früh nicht zu erreichen sein.
    Das Nether wird neu generiert.
    Das end wird noch nicht gelöscht, dies wird erst mit dem wechsel auf mein neues system geschehen.


    Ihr könnt denn test-server solange benutzen, dieser ist nahezu vanilla!!


    Kleiner

    Hallo Letsminerinnen und Letsminer,
    Das heiss ersehnte 1.7 Update kommt nun, leider nicht mit den dafür geplanten Features.
    Ich habe im RL gerade ein parr zeitliche probleme weswegen ich das update mit allen geplanten Features verschoben habe.


    Das bedeutet dass sich mit dem update nichts ändern wird.
    Bitte verzeit die lange Verzögerung...


    Kleiner

    Guten Abend Letsminerinnen und Letsminer
    Ich habe nun ein "Converter" geschrieben der alle daten einliest und diese dann in mein datenbank format eingibt.


    Nunja, wie ihr euch sicherlich denken könnt schreibe ich das hier nicht einfach nur so aus fun, es wird so sein, das jeder cracked user der einen premium namen verwendet nach dem 1.7 wechsel als premium user in der datenbank steht und dadurch die kick-nachricht bekommt die auf seite 2 beschrieben wird..
    Deswegen sollen alle cracked user die ein premium namen haben, sich hier Bedanken, damit ich schonmal eine liste habe welche user ich wieder zurücksetzen muss.
    Wie ihr das erkennt?
    https://www.minecraft.net/haspaid.jsp?user=
    dahinter setzt ihr euern namen, wenn ein true raus kommt und ihr cracked seit, Bedanken!!
    Wenn hier andere user einen like drunter setzen ... werdet ihr vom system als cracked user behandelt..


    Nach dem 1.7 Update werde ich auch die Blaue Box ändern und ein extrer thread öffnen, für die, die es nicht lesen..


    Kleiner

    Du glaubst doch wohl nicht das ich es euch so einfach werde oder?
    Ich mache nicht die versions nummer davon abhänig sondern dass was meiner meinung nach ein wechsel auslöst xD
    Wenn ich meine arbeit hier erledigt habe bleibe ich euch ja erhalten, mache im grunde genommen noch das was ich jetzt mache nur kann es mal passieren das ich mal nen Monat weder im forum, im ts oder ingame bin.


    P.S.: Ich hatte die versions nummer bisher geändert, nimand anderes xD wer hätte es gewust? xD


    So, back to Topic.
    das "HD Reloaded" war auch eher ein scherz der vergessen wurde gelöscht zu werden :winking_face:


    Ich freu mich schon auf die neue map xD (egal ob 4.0 oder nicht)


    Kleiner

    Hmm, ich weiß ja nicht wer es schon wuste aber ich habe schon immer gesagt das ich mit 5.0 weg bin :face_with_tongue:


    Für das versions nummern karos bin ich zuständig:
    1.0 der begin von Letsmine; habe ich leider nicht miterlebt
    2.0 war der restlose map wechsel.
    2.2 war so das einspielen des plugins für Brücken, Lifts und Gate schilder
    2.3 das hinzufügen von warp-schildern
    2.5 war so ein technischer punkt, ich habe größere teile der Technik (Plugins und Server) umgeschrieben (Ofizieler Admin :thumbs_up: )
    3.0 war dann so das update beim freebuild update.
    3.1 ist das 1. update der technik die ich in 1.7 verwende.


    3.5 Wäre dann der umstieg auf 1.7 mit einem teiel selbstgeschriebener server-software
    4.0 Wäre das Update der Hauptmap
    4.X-versionen sind weitere plugin meilen steine
    5.0 wäre der abschluss meiner arbeit mit einem system das restlos ingame durch Mods und Admins ohne großen aufwand verwaltet werden kann.


    Neija, an dem tag würde ich mich selber zum Member demoten und wieder spielen :face_with_tongue:
    Für Versions updates würde ich dann noch updates schreiben und hochladen. Root probleme beheben aber nicht mehr tag täglich online sein.


    PS: wenn das update der Haupt-Map nicht 4.0 wird, werde ich beim update auf 4.0 verschwinden :smiling_face_with_sunglasses:


    Kleiner :grinning_squinting_face:

    So, Changelog geupdatet..
    Ich hoffe ich werde langsam mal fertig, habe in der Woche 3 Baustellen angefangen im Code, habe sie gerade geschlossen, leider mit fehlern wie ich beim testen gemerkt habe.. morgen also mal wieder an die fehler suche (fehler suche verbraucht mehr zeit als alles andere -.- und am ende fehlte mal wieder ein punkt, ein komma oder einfach ein | -.- wie immer)


    Kleiner geht pennen

    Danke Trojaner xD


    @Longer, jeder hat sein spezial gebiet^^ Wenn er sich damit auskennt ist es doch gut.


    Aktueller sind des Server -->
    Jeder Premium User der beim einloggen zu schnell auf Login drückt, wird als Cracked user angesehen (launcher ist schuld)
    Wenn der Mojang server offline ist wird Jeder Premium User als Cracked angesehen.
    Jeder Cracked User der ein Premium name benutzt wird als Cracked angesehen.


    Jeder "als Cracked User" angesehender Spieler bekommt beim 1. Joinen eine Kick message:
    Anmeldung fehlgeschlagen: Ungültige Sitzung (Versuch das Spiel neu zu starten)
    das Spiel muss nicht Neugestartet werden, einfach nochmal versuchen zu joinen!


    //TODO: Herrausfinden ob die Mojang Server down sind um das joinen zu vereinfachen.


    Jeder Cracked User, oder spieler der von Server als Cracked angesehen wird, bekommt keine Premium vorteile!


    Geplante Premium Vorteile:
    Ohne Password Eingabe(aufforderung) Joinen, nur einmalig registrieren um im fall der fälle als cracked joinen zu können.


    Kleiner