WorldGenerationControl

WorldGenerationControl

WorldGenerationControl

0 polubień • 0 pobrań
Dostępne pliki
1
Obsługiwane wersje
0
Najnowszy plik
17.01.2012

** UWAGA: To nie działa od wersji 1.4+, a /destroyAndRegenerateArea jest zepsute od 1.2+. Mogę w pewnym momencie spróbować to przepisać, ale bez obietnic. Łatki są mile widziane! Zobacz GitHub. **

WorldGenerationControl 2.6

Dawniej ForceGenChunks

Która była głupią nazwą, więc ją zmieniłem

To bardzo prosty plugin, który pozwala na wstępne wygenerowanie regionu twojego świata. Nie wpływa na już wygenerowane regiony. Od wersji 2.0, może również naprawiać oświetlenie istniejących regionów.

Features

  • Generuje dowolne regiony według współrzędnych
  • Kolejkowanie wielu generacji
  • Różne ustawienia prędkości, aby kontrolować opóźnienie względem czasu generowania
  • Działa na działającym serwerze
  • Nie blokuje serwera (chyba że użyjesz opcji /allAtOnce)
  • Niskie zużycie RAM, działa na serwerach z 1 GB pamięci.
  • Generuje drzewa i rudy, nie tylko teren
  • Może generować prawidłowe oświetlenie
  • Może wymuszać regenerację oświetlenia na istniejących chunkach, aby naprawić problemy z oświetleniem.

Błędy / Ciekawostki

  • Generowanie terenu wymaga dużo CPU - nic, co wtyczka może na to poradzić! Jeśli nie chcesz, aby serwer lagował, użyj trybów /slow lub /veryslow.
  • Zaprojektowano dla serwerów z co najmniej 1 GB pamięci przydzielonej (-Xmx1024M). Serwery z niższymi limitami pamięci mogą napotkać wyjątki z heap. Jeśli masz mniej niż 1 GB pamięci, spróbuj użyć trybów /slow lub /veryslow.

Commands

Polecenie /genregion (lub /generateregion) może być wprowadzone przez każdego operatora serwera, konsolę serwera, lub każdą osobę z odpowiednimi uprawnieniami (patrz poniżej).

Składnia to:

/genregion WorldName StartX StartZ EndX EndZ

Dla okręgów (/generatecircularregion lub /gencircle):

/gencircle Radius [WorldName xCenter zCenter]

Świat i współrzędne środka dla polecenia koła są [opcjonalne], jeśli jesteś graczem (nie z konsolą). Domyślnie będą ustawione na twoją bieżącą pozycję w świecie.

Wszystkie współrzędne są w normalnych, in-game współrzędnych - ale będą dopasowane do najbliższej granicy chunku (włączając).

Opcje

Wszystkie polecenia mogą mieć do nich zastosowane opcje jak to:

/gencircle 1600 MyWorld 0 0 /fast /lighting

Opcje nie rozróżniają wielkości liter. Dostępne opcje są:

  • /allAtOnce - Nie przerywaj między krokami, generuj wszystko żądane naraz. To sprawi, że serwer będzie praktycznie nieużywalny do zakończenia generacji, ale zadanie zostanie wykonane najszybciej. Bardzo przydatne w połączeniu z /onlyWhenEmpty
  • /veryFast, /fast, /slow, /verySlow - Dostosuj prędkość. Nie ma wpływu jeśli /allAtOnce zostało wybrane. Zwykle wtyczka powoduje niewielkie opóźnienie podczas generowania, zwykle około 700 ms pracy na trzy sekundy (w zależności od CPU serwera). Zwiększenie prędkości przez fast lub veryfast spowoduje większe opóźnienie, ale przyspieszy generowanie, slow lub veryslow zredukuje opóźnienie przy jednoczesnym wydłużeniu czasu generowania. Veryfast spowoduje duże opóźnienie. Veryslow spowoduje prawie brak opóźnienia, ale będzie to około 10x dłużej.
  • /forceKeepUp - Zmusi serwer do "nadążania" za garbage collection i zapisem chunków. W szczególności, 1.9 ma nowy asynchroniczny zapis chunków, który wydaje się ograniczany przez szybkość, co może nie nadążać przy szybkich generacjach. Ta opcja wymusza natychmiastowe zapisywanie chunków, a nie na osobnym wątku. Powinieneś użyć tej opcji, jeśli zauważysz, że wtyczka spędza dużo czasu na „czekaniu na nadrobienie” i nie przeszkadza ci niewielki wzrost użycia CPU wynikający z wymuszania tego. Tryb /allAtOnce zawsze będzie używał tej opcji.
  • /lighting:none - POMIJ generowanie danych oświetlenia dla załadowanych chunków. Zobacz Uwagi dotyczące oświetlenia poniżej.
  • /lighting:force - Resetuj i ponownie generuj oświetlenie dla wszystkich chunków, które napotykamy, nawet jeśli mają już dane oświetleniowe. Przydatne do naprawiania obszarów z uszkodzonym oświetleniem.
  • /verbose - Wyświetlaj szczegółowe informacje o czasie podczas generowania. Zwiększa ilość komunikatów, które wypisuje wtyczka.
  • /quitAfter - Wyłącza serwer po zakończeniu tej i innych oczekujących generacji. Zobacz sekcję Używanie w skrypcie poniżej.
  • /onlyWhenEmpty - Generuj tylko wtedy, gdy serwer jest pusty. Wtyczka wstrzymuje generację i czeka, aż gracze odejdą, co pozwala wygenerować dużo terenu bez martwienia się o dodatkowy CPU. Możesz użyć tego w połączeniu z /allAtOnce, aby serwer używał 100% mocy podczas gdy jest pusty przy generowaniu terenu, bez powodowania lagu, gdy gracze są online.
  • /destroyAndRegenerateArea - Jak sama nazwa wskazuje, to usuwa cały teren w podanym obszarze, generując zamiast tego nowy teren. Nie mogę wystarczająco podkreślić, że usunie twój świat (lub przynajmniej określony obszar), więc proszę zrozum, co robisz i zrób kopię zapasową!

Uprawnienia

Uprawnienia są opcjonalne. Operatorzy serwera i konsola serwera mogą zawsze używać poleceń generowania. Jednak jeśli masz zainstalowane uprawnienia, używane są następujące uprawnienia:

  • worldgenerationcontrol.generate - Umożliwia użytkownikowi dodawanie generacji do kolejki. Domyślnie przyznaje worldgenerationcontrol.statusupdates
  • worldgenerationcontrol.statusupdates - Umożliwia użytkownikowi widzieć komunikaty postępu generowania. Mogą być dość spamujące, wyraźne usunięcie tego uprawnienia spowoduje, że komunikaty zobaczy tylko konsola serwera.

Examples

/genregion OurBeautifulWorld -50 -50 50 50

Wygeneruje od -50,-50 do 50,50 w współrzędnych gry. Proste!

/genregion "Bob and Sam's \"Awesome\" World" -50 -50 50 50

Tą samą komendą dla świata: Bob and Sam's "Awesome" World. Cudzysłowy mogą być umieszczone wokół nazw światów z odstępami, nazwy światów zawierające prawdziwe cudzysłowy mogą być escapowane backslashami.

/gencircle 1000 /fast /verbose /lighting

Wygenerowałby okrąg o promieniu 1000 bloków wokół gracza wywołującego, z ustawieniem prędkości /fast, z verbose output, z oświetleniem!

/gencircle 1000 MyWorld 100 100 /veryslow

Wygenerowałby okrąg o promieniu 1000 bloków, wycentrowany w MyWorld na 100x, 100z, używając veryslow, żeby nie generować lagu.

/gencircle 10000 MyWorld 100 100 /allAtOnce /onlyWhenEmpty

Wygenerowałby HEUG okrąg o promieniu 10000 bloków wokół MyWorld 100,100 przy maksymalnej prędkości, ale generacja zostanie wstrzymana, gdy gracze dołączą. Przydatne, jeśli chcesz, aby serwer używał 100% mocy podczas generowania, gdy w przeciwnym razie byłby bezczynny.

Uwagi dotyczące oświetlenia

Domyślnie, Minecraft generuje dane oświetlenia dla chunku dopiero wtedy, gdy zostanie po raz pierwszy zbliżony przez gracza. To w porządku, ale jeśli chcesz wygenerować zewnętrzną mapę przy użyciu czegoś takiego jak Minecraft Overviewer, oznacza to, że obszary, których gracze nie odwiedzili, będą miały jedynie 'szybkie' oświetlenie, z ciemnymi cieniami.

Aby to naprawić, domyślnie WorldGenerationControl wymusza, by nowe chunk były wyposażone w informacje oświetleniowe, jakby był w pobliżu gracz. Nie powinno to powodować problemów, ale zajmuje około 8% więcej czasu CPU. Możesz pominąć ten krok poleceniem /lighting:none — chunki będą nadal oświetlone, gdy przechodzą obok gracza, więc to problem tylko dla zewnętrznych narzędzi, jak wspomniano wyżej.

Istnieje również /lighting:force, który wymusza generowanie oświetlenia dla wszystkich chunków, po których przechodzi (nawet tych już wygenerowanych i z prawidłowym oświetleniem), co jest przydatne do zmuszenia Minecrafta do ponownego obliczenia oświetlenia w obszarach z błędami w cieniach.

Using in a Script

Opcja /quitAfter pozwala na użycie tego pluginu jako części skryptu. Na przykład, niektórzy użytkownicy lubią generować mapy dla wielu losowych ziaren, aby udostępnić społeczności lub opublikować na /r/minecraft dla dobrej karmy. Ponieważ Bukkit/Java wariuje, gdy EOF napotkane w wejściu, poprawny sposób na to byłby coś takiego:

echo "gencircle 1000 TestWorld 0 0 /allatonce /quitafter" | cat - /dev/full | java -jar craftbukkit-0.0.1-SNAPSHOT.jar --nojline

Pobierz

https://github.com/downloads/Nephyrin/WorldGenerationControl/WorldGenerationControl_v2.6.jar

Źródło

https://github.com/Nephyrin/WorldGenerationControl

Dziennik zmian

  • 2.6
    • Zaktualizowano, aby działał z buildami 1.0.1 / 1.1.
  • 2.5
    • /forceKeepUp teraz nadąża także za garbage collection
    • Zmieniono nazwę /forceSave na /forceKeepUp, aby odzwierciedlić, że również nadąża za garbage collection.
    • Gdy serwer utrzymuje się na >80% pamięci zbyt długo, spróbuj wywołać GC. Dzięki temu naprawiany jest problem, w którym domyślne opcje Java GC sprawiały, że utrzymywano 80% pamięci w nieskończoność dopóki nic nie zmuszało do nadrobienia.
    • Trochę usprawniono wyjście /verbose.
    • Sprawdzaj, czy mamy <200Megs wolnego, oprócz <20% wolnego; zapobiega to błędom out-of-memory na serwerach z 512MB RAM (które ten plugin technicznie nie obsługuje)
  • 2.4
    • Dodano obejście /forceSave z powodu dziwnego zachowania AsyncChunkLoadera w 1.9.
    • /allAtOnce teraz implikuje /forceSave
    • Ustawienie limitu pamięci na nieco bardziej konserwatywny, aby nie dochodziło do nadmiaru GC na serwerach o niskiej pamięci
    • Gdy limit pamięci zostanie osiągnięty, zaczekaj, aż RAM spadnie poniżej limitu o co najmniej 10% przed wznowieniem
    • Dostosowano obejście błędu NextTickList - zamiast opróżniania listy, upewnij się, że pozostaje poniżej progu. Powinno to naprawić drobne wywołania lagu związane z poprawką.
    • Drobne optymalizacje
  • 2.3 - Death to Memory Issues edition
    • Zawiera poprawkę obsługi NextTickList CraftBukkit, umożliwiając wysokie prędkości generowania na serwerach z małą pamięcią.
    • Wywołuje GC bezpośrednio, gdy zbliża się do limitów pamięci, aby zapobiec błędom GC Overhead
    • Robi przerwę, jeśli zużycie pamięci jest zbyt wysokie, aby serwer mógł nadążyć.
  • 2.2
    • Oświetlenie teraz rozmawia bezpośrednio z CraftBukkit i jest teraz około 115 razy szybsze. Tak.
    • Ponieważ oświetlenie zajmuje teraz znacznie mniej czasu, wtyczka nie dzieli już oświetlenia/generowania/zapisywania na oddzielne kroki.
    • Ponieważ oświetlenie jest teraz bardzo szybkie, /lighting stało się domyślnym. Wciąż można je wyłączyć za pomocą /lighting:none
    • /lighting:extreme nazywa się teraz /lighting:force, i zużywa tylko nieco więcej CPU.
    • Dodano /destroyAndRegenerateArea - który regeneruje wszystkie chunk w regionie. Uważaj!
    • Usunięto /lightExisting, oświetlenie teraz wykonywane jest tylko wtedy, gdy jest potrzebne, niezależnie od wszystkiego, a /lighting:force może być użyty, aby spróbować naprawić uszkodzone obszary oświetlenia.
    • Naprawiono CENTRO /gencircle, gdy był wywoływany przez gracza bez współrzędnych
    • Poprawiono dokładność niektórych nieprecyzyjnych obliczeń, aby zapewnić, że generowane są tylko żądane obszary
    • Dodano /onlyWhenEmpty - powoduje, że wtyczka wykonuje pracę tylko wtedy, gdy serwer jest pusty, pauzując i wznawiając pracę w razie przyłączania/odejścia graczy.
    • Drobne ulepszenia prędkości/zużycia zasobów
  • 2.1
    • Naprawiono problem z /allAtOnce zbytnio agresywnym w oświetleniu, powodując błędy pamięci na serwerach o małej pamięci.
    • Tryb allAtOnce teraz wraca na chwilę do serwera między tickami, umożliwiając uruchamianie innych poleceń (takich jak /cancelgen).
  • 2.0
    • Nazwa zmieniona na WorldGenerationControl z ForceGenChunks
    • Duża przebudowa
    • Obsługuje metody oświetlenia Minecraft 1.8
    • Dodane opcje: lighting, speed, verbose, quitafter
    • Dodano obsługę uprawnień
    • Normalna prędkość generuje znacznie mniej lagu. Opcje prędkości dają kontrolę nad opóźnieniem podczas generowania.
    • Nie ufa już serwerowi w sprzątanie chunków, zarządza procesem poprzez krok oświetlenia i sprząta chunk bezpośrednio. maxLoadedChunks został usunięty, nawet przy wysokich ustawieniach prędkości plugin nigdy nie załaduje więcej niż 1024 chunków do pamięci.
    • Wydzielono i ulepszono komunikaty statusu.
    • Użycie współrzędnych bloków zamiast współrzędnych chunków
    • Wsparcie dla kolejkowania wielu generacji
    • Lepsze API wtyczki do integracji z innymi pluginami
    • Inne rzeczy, które prawdopodobnie zapomniałem
  • 1.4
    • Dodano % postępu do komunikatów o stanie generowania.
  • 1.3
    • Dodano obsługę cudzysłowów i spacji w nazwach światów za pomocą cudzysłowów i sekwencji ucieczki.
    • Aby generować dla mapy: Bob's "Wonderful" Funland
    • /forcegen "Bob's \"Wonderful\" Funland" -10 -10 10 10
    • Naprawiono błąd „Invalid world name” wyświetlający błędną nazwę świata dla poleceń /forcegencircle.
    • Oddzielono generowanie i etapy czyszczenia - wtyczka teraz wypisuje komunikat, gdy generacja jest zakończona, a drugi komunikat później, gdy czyszczenie jest zakończone.
    • Nowe generacje mogą być uruchamiane nawet jeśli czyszczenie nie jest zakończone, pozostałe czyszczenie zostanie połączone z czyszczeniem nowego zadania.
    • Usunięto ostrzeżenia o graczach będących w świecie, wraz z powyższymi zmianami nie ma to szkody w ich przebywaniu.
    • Dodano kilka kolorów do komunikatów wtyczki. Ładne.
    • Wiadomości wtyczki teraz pokazują kto co zrobił.
    • Testowano z rekomendowanymi buildami 1000 i 1060.
  • 1.2
    • Dodano /forcegencircle
    • Gracze, którzy używają komendy, teraz widzą postęp, nie tylko komunikat „generacja rozpoczęta”.
    • Kilka drobnych poprawek tekstu.
  • 1.1
    • Poczekaj na odładowanie chunków, zamiast zakładać, że nasze żądania odładowania się powiodą. Naprawia „wyciek” załadowanych chunków w dużych generacjach, chunków które nigdy się nie odładują aż do ponownego uruchomienia.
    • Dodano opcjonalny argument maxLoadedChunks do /forcegen; ustawienie go wyżej redukuje czas oczekiwania na odładowanie starych chunków, ale powoduje więcej chunków w RAM, zwiększając zużycie pamięci.
    • Dodano /cancelforcegen, aby anulować generację w trakc ie.
  • 1.0
    • Wydanie

Kontakt

john@pointysoftware.net

Opis projektu pochodzi z CurseForge i został udostępniony po polsku. Szczegóły konfiguracji, zależności oraz aktualne komunikaty autora sprawdź na w źródłowym katalogu CurseForge.

Stabilne v2.6
WorldGenerationControl_v2.6.jar 17.01.2012
Przed instalacją

Jak bezpiecznie sprawdzić ten plugin

Wybierz zgodny plik

Oznaczenia wersji pochodzą z metadanych autora. Dobierz również właściwe oprogramowanie serwera i Javę.

Zachowaj kopię

Przed pierwszym startem skopiuj świat, konfigurację oraz dane pozostałych pluginów.

Przeczytaj log

Po uruchomieniu sprawdź brakujące zależności i pierwszy błąd związany z nazwą pluginu.

Zobacz pełną instrukcję instalacji