Minecraft server: Difference between revisions
(→Links) |
|||
(44 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== |
== Links == |
||
;Servers [https://www.spigotmc.org/wiki/what-is-spigot-craftbukkit-bukkit-vanilla-forg/]: |
|||
* [https://www.spigotmc.org/wiki/what-is-spigot-craftbukkit-bukkit-vanilla-forg/ Vanilla] |
|||
: The original server from Mojang. |
|||
* [https://www.spigotmc.org/wiki/what-is-spigot-craftbukkit-bukkit-vanilla-forg/ Bukkit] |
|||
* [https://www.spigotmc.org/wiki/what-is-spigot-craftbukkit-bukkit-vanilla-forg/ CraftBukkit] |
|||
* [https://www.spigotmc.org/wiki/what-is-spigot-craftbukkit-bukkit-vanilla-forg/ Spigot] |
|||
: The most popular server |
|||
* [https://files.minecraftforge.net/ Forge] |
|||
;Server API (don't know what it means exactly): |
|||
* [https://www.spongepowered.org/ Sponge], A community-driven open source Minecraft modding platform. More [https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-mods/2762284-sponge-the-flexible-forge-friendly-server-api-and here]. |
|||
;Server-side tools (for large servers) |
|||
* [https://www.spigotmc.org/wiki/what-is-spigot-craftbukkit-bukkit-vanilla-forg/ TacoSpigot, Glowstone, BungeeCord, FlexPipe, HexaCord... ] |
|||
;Spigot/Bukkit plugins |
|||
* See section below. |
|||
;Forge/Cauldron mods |
|||
* See section below. |
|||
;Free Minecraft server |
|||
* [https://aternos.org/:en/ Aternos.org] — Free minecraft server |
|||
=== Installation log === |
|||
* [[Minecraft Immie Pi]] |
* [[Minecraft Immie Pi]] |
||
== Installation == |
== Installation == |
||
Must install |
|||
=== CraftBukkit === |
|||
* A Minecraft '''server'''. This can be either Minecraft vanilla, Bukkit, CraftBukkit, Spigot, Forge, Cauldron... |
|||
* Recommended line from http://forums.bukkit.org/threads/how-to-setup-a-ubuntu-craftbukkit-server-x64-running-java-x64.598/ |
|||
* A '''startup/backup''' script. |
|||
<source lang=bash> |
|||
* In case of Bukkit/Spigot/Cauldron, one or several '''plugins'''. |
|||
java -d64 -Xincgc -Xmx1024M -jar craftbukkit.jar nogui |
|||
* In case of Forge/Cauldron, one or several '''mods'''. |
|||
=== Spigot === |
|||
''Spigot'' is an optimized Craftbukkit server. |
|||
This is the server I used for '''Minecraft 1.12.2''', then upgraded to '''Minecraft 1.15.2''' on our home server. |
|||
Following [https://www.spigotmc.org/wiki/buildtools/ Spigot BuildTools guide]: |
|||
<source lang="bash"> |
|||
mkdir spigot_buildtools |
|||
cd spigot_buildtools |
|||
wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar |
|||
git config --global --unset core.autocrlf |
|||
java -jar BuildTools.jar |
|||
</source> |
</source> |
||
;Minecraft 1.15.2 |
|||
The procedure is mostly the same, except that it only produces a single file ({{file|spigot-1.15.2.jar}}). The other file was only produced as an alternative to Spigot (in case of uncompatibility), and hence are not necessary. |
|||
When the build is complete, we copy {{file|spigot-1.15.2.jar}} and rename it to {{file|spigot.jar}} (we also delete the obsolete {{file|craftbukkit.jar}}). |
|||
=== Spigot on Raspberry Pi === |
|||
;Minecraft 1.12.2 |
|||
This creates 2 jar files: {{file|craftbukkit-1.12.2.jar}} and {{file|spigot-1.12.2.jar}}. |
|||
Then follow install instructions [https://www.spigotmc.org/wiki/spigot-installation/]: |
|||
* Copy {{file|craftbukkit-1.12.2.jar}} and {{file|spigot-1.12.2.jar}} in a directory dedicated to the minecraft server, and rename to {{file|craftbukkit.jar}} and {{file|spigot.jar}}. |
|||
* Start the server with: |
|||
<source lang="bash"> |
|||
java -Xms1G -Xmx1G -XX:+UseConcMarkSweepGC -jar spigot.jar |
|||
</source> |
|||
More links (used for Spigot on Raspberry Pi): |
|||
* http://picraftbukkit.webs.com/pi-minecraft-server-how-to |
* http://picraftbukkit.webs.com/pi-minecraft-server-how-to |
||
* http://www.howtogeek.com/173044/how-to-run-low-cost-minecraft-on-a-raspberry-pi-for-block-building-on-the-cheap/ |
* http://www.howtogeek.com/173044/how-to-run-low-cost-minecraft-on-a-raspberry-pi-for-block-building-on-the-cheap/ |
||
* http://www.raspberrypi.org/forums/viewtopic.php?f=78&t=75882 |
* http://www.raspberrypi.org/forums/viewtopic.php?f=78&t=75882 |
||
=== PaperMC === |
|||
[https://papermc.io/ PaperMC ] is recent alternative to Spigot and Craftbukkit, touted as superfast. |
|||
It is recommended by EssentialX plugin [https://ci.ender.zone/job/EssentialsX/]. |
|||
Not tried yet. |
|||
=== CraftBukkit === |
|||
Recommended line for starting CraftBukkit [http://forums.bukkit.org/threads/how-to-setup-a-ubuntu-craftbukkit-server-x64-running-java-x64.598/]: |
|||
<source lang=bash> |
|||
java -d64 -Xincgc -Xmx1024M -jar craftbukkit.jar nogui |
|||
</source> |
|||
=== Cauldron and Forge === |
=== Cauldron and Forge === |
||
'''[http://cauldron.minecraftforge.net/wiki/primer-for-cauldron-and-forge/ Cauldron]''' is the new name of MCPC+, ie. basically Spigot + Forge API. Cauldron allows for running servers using both CraftBukkit plugins and Forge mods (like Mo'Creatures). I used Cauldron as Minecraft server up to '''Minecraft 1.7.2/1.7.10'''. |
|||
* Best way for installing is to run the Cauldron installer (see [http://files.minecraftforge.net/Cauldron/ download page]) |
* Best way for installing is to run the Cauldron installer (see [http://files.minecraftforge.net/Cauldron/ download page]) |
||
* When launched, it runs like a standard Spigot / Craftbukkit server. |
* When launched, it runs like a standard Spigot / Craftbukkit server. |
||
== Configuration == |
|||
=== server.properties === |
|||
See [https://minecraft.gamepedia.com/Server.properties server.properties]. |
|||
* server message (including formatting). |
|||
<source lang="bash"> |
|||
motd=\u00A7c-=\u00A76Welcome to \u00A7lI.M.M.I.E\u00A7r\u00A7c=- |
|||
</source> |
|||
=== Server icon === |
|||
Simply create a 64x64 PNG file and save it as file {{file|server-icon.png}} in server folder root [https://www.spigotmc.org/threads/how-to-add-a-server-icon-to-your-server-1-7-1-8.6564/] |
|||
== Bukkit / Spigot plugins == |
|||
Plugins greatly enhanced the gameplay and provide many new features. Here some links where we can download plugins: |
|||
* [https://www.spigotmc.org/resources/?order=download_count Spigot resources]. |
|||
* [https://dev.bukkit.org/bukkit-plugins Bukkit plugins]. |
|||
Often times plugins are available both on Spigot and Bukkit site. It is interesting to view both pages as they might contain different information (and even sometimes different versions!). |
|||
Below I list some plugins. '''Plugins in bold''' are those I'm currently using; in that case, they are prefixed with the minecraft version (e.g. '''(mc 1.12.2)''' or '''(mc 1.15.2)'''). <s>Stroke through</s> are plugins that are no longer available. '''(Try me)''' indicates very promising plugins I need to try some day. |
|||
;World management |
|||
* '''(mc 1.12.2, 1.15.2) Multiverse''' [https://dev.bukkit.org/projects/multiverse-core] |
|||
:Multiverse is the most popular multi-world plugin for minecraft server. |
|||
:* '''(mc 1.12.2, 1.15.2) Multiverse Core''' [https://dev.bukkit.org/projects/multiverse-core], the main plugin. Compatible Bukkit 1.12 & 1.15. |
|||
:* '''(mc 1.12.2, 1.15.2) Multiverse Portals''' [https://dev.bukkit.org/projects/multiverse-portals], to get portals. Compatible Bukkit 1.12 & 1.15. |
|||
:* '''(mc 1.12.2, 1.15.2) Multiverse Nether Portals''' [https://dev.bukkit.org/projects/multiverse-netherportals], to get portals to the nether. Compatible Bukkit 1.12 & 1.15. |
|||
:* '''(mc 1.15.2) Multiverse Sign Portals''' [https://dev.bukkit.org/projects/multiverse-signportals], to edit nether portals with sign or use signs as portals. Compatible Bukkit 1.15. |
|||
:* '''(mc 1.12.2, 1.15.2) Per World Inventory''' [https://www.spigotmc.org/resources/per-world-inventory.4482/], to manage inventories. This replace the old multiverse-inventory plugin. Compatible Bukkit 1.12, '''{{red|and 1.14 (not 1.15 so far, problem?)}}'''. |
|||
;Essential / permission |
|||
* '''(mc 1.12.2, 1.15.2) EssentialX''' [https://www.spigotmc.org/resources/essentialsx.9089/] (Install [https://ci.ender.zone/job/EssentialsX/ jenkins build]) |
|||
: An up-to-date fork of [https://dev.bukkit.org/projects/essentials Essentials]. Provide basic (but usually good enough) support for permissions, spawn, chat, signs, economy, group manager. Compatible Bukkit 1.12. Also [https://dev.bukkit.org/projects/ essentialsx here]. It requires the '''Vault''' plugin. |
|||
: Not sure what is the difference with other permission plugins (like [https://dev.bukkit.org/projects/permissionsex PermissionEx]). |
|||
: All essentials plugins must have matching version. I downloaded them from the Jenkins build, except Group Manager that is available separately. |
|||
* '''(mc 1.12.2, 1.15.2) EssentialsX Chat''' (Install [https://ci.ender.zone/job/EssentialsX/ jenkins build]) |
|||
* '''(mc 1.12.2, 1.15.2) EssentialsX Spawn''' (Install [https://ci.ender.zone/job/EssentialsX/ jenkins build]) |
|||
* '''(mc 1.12.2, 1.15.2) EssentialsX Group Manager''' [https://www.spigotmc.org/resources/groupmanager-working-1-7-1-12-builds.38875/] (available separately, must match version though). |
|||
* '''(mc 1.12.2, 1.15.2) Vault''' [https://dev.bukkit.org/projects/vault]. Seems to federate all permission-related plugins. Compatible Bukkit 1.11. |
|||
* Essential [https://dev.bukkit.org/projects/essentials]. Original plugin. Seems outdated. |
|||
;Creative |
|||
* (mc 1.12.2) WorldEdit [https://dev.bukkit.org/projects/worldedit], an easy-to-use in-game editor. Compatible Bukkit 1.12. |
|||
: Crashed twice on me in Spigot 1.12.2. Time to look for alternatives? Switched to FAWS. |
|||
* '''(mc 1.12.2, 1.15.2) Fast Async World Edit (FAWE)''' [https://www.spigotmc.org/resources/fast-async-worldedit-voxelsniper.13932/] ([https://github.com/boy0001/FastAsyncWorldedit/wiki wiki]). |
|||
* AsyncWorldEdit [https://www.spigotmc.org/resources/asyncworldedit.327/], an alternative to WorldEdit. |
|||
* '''(mc 1.12.2, 1.15.2) PlotSquared''' [https://www.spigotmc.org/resources/plotsquared.1177/], compatible 1.12, is a more up-to-date version of [https://dev.bukkit.org/projects/plotme PlotMe] (mc 1.8.1). |
|||
;Economy |
|||
* iConomy is discontinued. |
|||
* '''(mc 1.12.2, 1.15.2) EssentialX''' [https://www.spigotmc.org/resources/essentialsx.9089/]. Provide basic support for economy. See [http://wiki.mc-ess.net/wiki/Essentials_Economy Essential Economy]. |
|||
* '''(mc 1.12.2) CraftConomy''' [https://dev.bukkit.org/projects/craftconomy], can use MySQL and suited to multiserver. Compatible 1.12, actively maintained. Installed in parallel of Essential. |
|||
* '''(mc 1.15.2) The New Economy''' [https://www.spigotmc.org/resources/the-new-economy.7805/]. A new economy plugin compatible with 1.15 (seen [https://clients.mcprohosting.com/knowledgebase/22/Recommended-Minecraft-Plugins.html here]). |
|||
;Economy-related |
|||
* '''(mc 1.12.2, 1.15.2) Jobs reborn''' [https://dev.bukkit.org/projects/jobs-reborn] |
|||
* '''(mc 1.12.2, 1.15.2) Time is Money''' [https://www.spigotmc.org/resources/time-is-money.12409/] |
|||
* '''(Try me)''' Mobs hunting [https://dev.bukkit.org/projects/mobhunting]. Looks really interesting, but maybe redundant with Jobs. |
|||
* KillerMoney [https://dev.bukkit.org/projects/killermoney]. Some simple mob-kill reward plugin. |
|||
;Essential |
|||
* [http://wiki.mc-ess.net/wiki/Group_Manager Group Manager]. Also available [https://www.spigotmc.org/resources/groupmanager-working-1-7-1-12-builds.38875/ here]. |
|||
* Essential Chat, latest build [https://hub.spigotmc.org/jenkins/job/spigot-essentials/ here]. |
|||
* Essential Spawn, latest build [https://hub.spigotmc.org/jenkins/job/spigot-essentials/ here]. |
|||
;Commands |
|||
* '''(mc 1.12.2, 1.15.2) CommandSign''' [https://www.spigotmc.org/resources/command-signs.10512/] ([https://github.com/Nokorbis/ar-command-signs wiki]). |
|||
:* To '''create''' a block, must '''right-click''' with '''empty hand''' on the block we want to add the command to. |
|||
:* The same applies for '''copying''' a block. We must '''right click''' with an '''empty hand'''. |
|||
* [https://dev.bukkit.org/projects/command-signs Command-Signs] |
|||
:* Another command-sign plugin. |
|||
;Factions |
|||
* '''(mc 1.12.2, {{red|no version for 1.15.2}}) Factions''' [https://www.spigotmc.org/resources/factions.1900/]. Also [https://dev.bukkit.org/projects/factions here]. |
|||
;Anti-grief |
|||
* '''(mc 1.12.2, {{red|no version for 1.15.2}}) CreeperHeal''' [https://www.spigotmc.org/resources/creeperheal.13346/] |
|||
Plugin to consider installing: |
|||
:* [https://www.spigotmc.org/resources/creativegates.1905/ CreativeGates]. |
|||
* [https://dev.bukkit.org/projects/worldguard Worlguard] |
|||
* [https://dev.bukkit.org/projects/citizens Citizens] |
|||
* [https://dev.bukkit.org/projects/openinv OpenInv]. |
|||
* [https://dev.bukkit.org/projects/chestshop ChestShop] |
|||
* [https://www.spigotmc.org/resources/dynmap.274/ DynMap] |
|||
* [https://www.spigotmc.org/resources/playerheads.15165/ PlayerHeads] |
|||
* [https://www.spigotmc.org/resources/lift.4704/ Lift] |
|||
* [https://www.spigotmc.org/resources/lockette-uuid-supported.3054/ Lockette] |
|||
* [https://dev.bukkit.org/projects/talkingmobs TalkingMob] |
|||
* '''(mc 1.12.2 {{red|-- no 1.15.2 available yet --}}) CityWorld''' [https://www.spigotmc.org/resources/cityworld.2250/] |
|||
Plugins I installed in older bukkit server but that are no longer maintained / useful: |
|||
* [https://www.spigotmc.org/resources/creativegates.1905/ NoSpawnChunks]. |
|||
=== Mods === |
|||
Mod to try on the server: |
|||
* [https://minecraft.curseforge.com/projects/journeymap JourneyMap] |
|||
== Installation - Minecraft <= 1.7.10 == |
|||
=== Start / stop init script === |
=== Start / stop init script === |
||
Line 23: | Line 187: | ||
* [https://github.com/superjamie/minecraft-init-script superjamie/minecraft-init-script] |
* [https://github.com/superjamie/minecraft-init-script superjamie/minecraft-init-script] |
||
* [http://minecraft.gamepedia.com/Tutorials/Server_startup_script Tutorials/Server startup script] |
* [http://minecraft.gamepedia.com/Tutorials/Server_startup_script Tutorials/Server startup script] |
||
=== Forge mods === |
|||
Use ''Cauldron + forge'' to run a server that accepts both CraftBukkit plugins and Forge mods |
|||
; Supported mods |
|||
* Mo' creatures v6.2.0 R2 |
|||
:Simply install the mods in minecraft server mod directory ({{file|./mods}}) |
|||
== CraftBukkit Troubleshoot == |
|||
=== Essentials / permissions debug === |
|||
To debug permission issues easily, set <tt>plugins/Essentials/config.yml</tt>: |
|||
<source lang=bash> |
|||
# More output to the console. |
|||
debug: true |
|||
</source> |
|||
=== Cannot start the server === |
|||
* I had issue due to '''jline''', which was parsing my <tt>/root/.inputrc</tt> file!!! |
|||
<source lang=text> |
|||
$ java -jar craftbukkit.jar help |
|||
229 recipes |
|||
27 achievements |
|||
Jul 10, 2013 3:00:24 AM net.minecraft.server.v1_5_R3.MinecraftServer main |
|||
SEVERE: Failed to start the minecraft server |
|||
java.lang.IllegalArgumentException: No enum constant org.bukkit.craftbukkit.libs.jline.console.Operation.DYNAMIC_COMPLETE_HISTORY |
|||
at java.lang.Enum.valueOf(Enum.java:236) |
|||
at org.bukkit.craftbukkit.libs.jline.console.Operation.valueOf(Operation.java:24) |
|||
at org.bukkit.craftbukkit.libs.jline.console.ConsoleKeys.loadKeys(ConsoleKeys.java:245) |
|||
at org.bukkit.craftbukkit.libs.jline.console.ConsoleKeys.loadKeys(ConsoleKeys.java:71) |
|||
at org.bukkit.craftbukkit.libs.jline.console.ConsoleKeys.<init>(ConsoleKeys.java:43) |
|||
at org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.<init>(ConsoleReader.java:146) |
|||
at org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.<init>(ConsoleReader.java:126) |
|||
at net.minecraft.server.v1_5_R3.MinecraftServer.<init>(MinecraftServer.java:106) |
|||
at net.minecraft.server.v1_5_R3.DedicatedServer.<init>(DedicatedServer.java:34) |
|||
at net.minecraft.server.v1_5_R3.MinecraftServer.main(MinecraftServer.java:653) |
|||
at org.bukkit.craftbukkit.Main.main(Main.java:152) |
|||
</source> |
|||
The solution was simply to remove the binding to ''dynamic-complete-history'' in the <tt>.inputrc</tt> file. |
|||
=== Wrong plugin version === |
|||
* The following message indicates a mismatch between server and plugin version: |
|||
01:14:18 CONSOLE: [WARNING] WorldEdit: Failed to do NMS safe block set |
|||
=== Frequent disconnect === |
|||
Getting frequently disconnect from server, with message: |
|||
lost connection: Internal Exception: io.netty.handler.timeout.ReadTimeoutException |
|||
See https://bugs.mojang.com/browse/MC-34947 |
|||
; Possible causes: |
|||
* Java garbage collector on the server taking too much time. |
|||
* Server triggering disconnects on the client side when loading/generating new chunks. |
|||
* Related to a save spike [https://bugs.mojang.com/browse/MC-34947] |
|||
* Related to file {{file|data/Mineshaft.dat}} taking too much CPU |
|||
* At the same time, I had lot of connection loss on the wifi (mandala laptop). Could this be related? |
|||
; Possible fixes: |
|||
* Restart the server |
|||
* Install Oracle Java 7 on the server |
|||
* Change the GC settings [https://bugs.mojang.com/browse/MC-34947]. Use <code>-XX:+UseG1GC</code> instead of <code>-XX:MaxGCPauseMillis=200</code>: |
|||
java -XX:+UseG1GC -jar minecraft_server.jar nogui |
|||
* Tweak connection mtu settings [http://www.minecraftforum.net/forums/support/modded-client-support/1956855-internal-exception-io-netty-handler-timeout]: |
|||
netsh interface ipv4 set subinterface "Local Area Connection" mtu=750 store=persistent |
|||
* rename {{file|data/Mineshaft.dat}} to {{file|data/Mineshaft.old}} |
|||
* upgrade to 1.7.10 |
|||
== Maintenance == |
|||
=== CraftBukkit server === |
|||
* Clear server log |
|||
:Use ''LogManager'': <code>/logclear</code> |
|||
* Clear core-protect db. |
|||
:On the console, <code>/co purge t:7d</code> (only data older than 24h can be purged from the console) |
|||
:In game, <code>/co purge t:30d</code> (only data older than 30 days can be purged from in-game) |
|||
== CraftBukkit Plugins == |
== CraftBukkit Plugins == |
||
Line 72: | Line 311: | ||
** [http://dev.bukkit.org/bukkit-plugins/rate-xray/ Rate of X-Ray] (statistical, command <code>/rx</code>) |
** [http://dev.bukkit.org/bukkit-plugins/rate-xray/ Rate of X-Ray] (statistical, command <code>/rx</code>) |
||
=== |
=== Basic commands === |
||
<source lang="bash"> |
|||
tphere <PLAYER> |
|||
tphere <PLAYER> |
|||
changepw <oldpwd> <newpwd> |
|||
changepw <oldpwd> <newpwd> |
|||
=== Create PlotMe world === |
|||
<source lang=bash> |
|||
/mv create plotworld normal -g PlotMe # Must use 'plotworld', or see PlotMe/config.yml |
|||
/mangaddp Default creativegates.use # In the PlotMe world, or user can't use creative gates anymore |
|||
/mangaddp Default plotme.use # Give user access to plotme commands |
|||
/mangaddp Default plotme.limit.1 # Limit to 1 plot / user |
|||
/plotme weanywhere # To use worldedit anywhere (protection against grief) |
|||
/mvm set monsters false # To prevent mobs spawning |
|||
/mvm set animals false # To prevent animals spawning |
|||
</source> |
</source> |
||
=== Give commands === |
|||
Edit file <tt>plugins/Multiverse-Core/config.yml</tt>: |
|||
<source lang=text> |
|||
prefixchat: 'false' |
|||
</source> |
|||
[https://minecraft.gamepedia.com/Commands/give Give] an enchanted object (see [https://minecraft.gamepedia.com/Enchanting/ID Enchanting/ID]). |
|||
=== Permissions in Multiverse === |
|||
<source lang=bash> |
<source lang=bash> |
||
# Give an enchanted sword |
|||
/manuadd histerical Default plotworld # Change group of a user in a given world |
|||
/give John diamond_sword 1 0 {ench:[{id:16,lvl:5}]} |
|||
# Give an enchanted book |
|||
/give @p enchanted_book 1 0 {StoredEnchantments:[{id:16,lvl:2}]} |
|||
</source> |
</source> |
||
=== Essentials |
=== Essentials === |
||
;kits |
|||
To enable kits via signs, give to user the following permissions: |
To enable kits via signs, give to user the following permissions: |
||
<source lang=text> |
<source lang=text> |
||
Line 111: | Line 343: | ||
essentials.kits.<kitname> |
essentials.kits.<kitname> |
||
</source> |
</source> |
||
=== Maintenance === |
|||
* Clear server log |
|||
:Use ''LogManager'': <code>/logclear</code> |
|||
* Clear core-protect db. |
|||
:On the console, <code>/co purge t:7d</code> (only data older than 24h can be purged from the console) |
|||
:In game, <code>/co purge t:30d</code> (only data older than 30 days can be purged from in-game) |
|||
=== Multiverse === |
=== Multiverse === |
||
Line 123: | Line 348: | ||
* [https://github.com/Multiverse/Multiverse-Core/wiki/World-properties Multiverse-Core world properties] |
* [https://github.com/Multiverse/Multiverse-Core/wiki/World-properties Multiverse-Core world properties] |
||
; Permissions |
|||
=== Miscellaneous === |
|||
<source lang=bash> |
|||
* Set world to ''peaceful'' (has precedence over server setting below): |
|||
/manuadd histerical Default plotworld # Change group of a user in a given world |
|||
/mvmodify set difficulty PEACEFUL |
|||
</source> |
|||
:Must also prevent monster spawning: |
|||
/mvmodify set monsters false |
|||
* to set the whole server in ''peaceful'', edit {{file|Server.properties}}: |
|||
spawn-monsters=false |
|||
; Set world difficulty |
|||
; Import a single player world |
|||
<source lang=bash> |
|||
* Copy SP world to say {{file|./world_singleplayer}} |
|||
/mvmodify set ? # Get help |
|||
* You need to guess the world ''environment'' (usually either <tt>NORMAL</tt> or <tt>FLAT</tt>) and if needed the generator used (see doc for more information). |
|||
/mvm set ? # Same, shorter |
|||
: To get the list of available environment: |
|||
/mvm set difficulty PEACEFUL |
|||
/mv env |
|||
/mvm set mode CREATIVE world # Can modify any world |
|||
* In the server: |
|||
</source> |
|||
This setting has precedence over server setting. To change server setting, edit file {{file|Server.properties}} on the server: |
|||
<source lang="bash"> |
<source lang="bash"> |
||
spawn-monsters=false |
|||
/mv import world_singleplayer NORMAL # Import with default generator |
|||
/mv import world_singleplayer NORMAL FLAG # Import with FLAT generator |
|||
</source> |
</source> |
||
; Prevent spawning |
|||
; Set spawn |
|||
<source lang="bash"> |
|||
/mv set spawn |
|||
/mvmodify set monsters false # Prevent monsters spawning |
|||
/mvmodify set animals false # Prevent animals spawning |
|||
</source> |
|||
; Set spawn for current world |
|||
<source lang="bash"> |
|||
/mv set spawn |
|||
</source> |
|||
; Create a portal |
; Create a portal |
||
To create a portal, first create a selection containing a portal ''frame'', then create the portal with <code>/mpc</code>. |
|||
* Use <code>p:portalname[:direction]</code> to specify another portal. Use optional <code>:direction</code> (like <code>p:castle_entrance:n</code> to target the portal named ''castle_entrance'' and have the player face ''north'' on arrival). |
|||
<source lang="bash"> |
|||
/mvpc portal_name # Create a portal named 'portal_name' |
|||
/mvpm dest world_name # Set the destination of current portal to spawn of world 'world_name' |
|||
/mvpm dest p:dest_portal_name # Set the destination of current portal to portal dest_portal_name |
|||
/mvpm dest p:dest_portal_name:n # Set the destination of current portal to portal dest_portal_name, changing player direction to 'north' |
|||
/mvpm dest p:dest_portal_name:s # Set the destination of current portal to portal dest_portal_name, changing player direction to 'south' |
|||
/mvpm dest p:dest_portal_name:e # Set the destination of current portal to portal dest_portal_name, changing player direction to 'east' |
|||
/mvpm dest p:dest_portal_name:w # Set the destination of current portal to portal dest_portal_name, changing player direction to 'west' |
|||
/mvp sel portal_name # Select portal 'portal_name' as current portal |
|||
/mvp remove portal_name # Destroy portal 'portal_name' |
|||
</source> |
|||
;Create inventory group ([https://github.com/Multiverse/Multiverse-Inventories/wiki/Command-reference]) |
|||
== Forge mods == |
|||
<source lang=bash> |
|||
Use ''Cauldron + forge'' to run a server that accepts both CraftBukkit plugins and Forge mods |
|||
/mvinv group # Interactive command |
|||
Create |
|||
emma_survival # Create the group, named 'emma_survival' |
|||
emma_survival # We add the three following worlds |
|||
emma_survival_nether |
|||
emma_survival_end |
|||
@ |
|||
all # We add all shares (so all is shared, inventory, money...) |
|||
@ |
|||
</source> |
|||
; Supported mods |
|||
* Mo' creatures v6.2.0 R2 |
|||
:Simply install the mods in minecraft server mod directory ({{file|./mods}}) |
|||
=== WorldEdit === |
|||
== CraftBukkit Troubleshoot == |
|||
Reference: [https://github.com/boy0001/FastAsyncWorldedit/wiki/Commands FAWS commands], [http://wiki.sk89q.com/wiki/WorldEdit WorldEdit] |
|||
=== Essentials / permissions debug === |
|||
<source lang="bash"> |
|||
To debug permission issues easily, set <tt>plugins/Essentials/config.yml</tt>: |
|||
# Selection |
|||
<source lang=bash> |
|||
//wand # Give the user the editing wand (axe) |
|||
# More output to the console. |
|||
//sel # Clear selection |
|||
debug: true |
|||
//sel cuboid # Default mode, ie. cuboid: L click: 1st point, R click: 2nd point |
|||
//sel extend # Enable extend mode: L click: start, R click: extend cuboid |
|||
# More //sel mode available. Type //sel ? to see |
|||
//chunk # Select the entire chunk |
|||
# Selection modification |
|||
outset 30 -h # Extend selection in all direction horizontally |
|||
shift 1 up # Shift selection 1 block up |
|||
# Basic edit |
|||
//set [id] # Fill selection with block 'id' (numeric or block name) |
|||
//set 80%stone,20%cobble # Idem, with fill percentage |
|||
//set 0 # Fill with air |
|||
//replace [idfrom] [idto] # Replace given block id with given block id |
|||
//outline [id] # Set outline |
|||
//walls [id] # Set walls |
|||
//undo # Undo edition |
|||
//redo # Redo edition |
|||
# Masked edit |
|||
//gmask 0 # Only affect 0/air blocks |
|||
//set stone |
|||
//gmask # Reset global mask |
|||
# Copy / Paste |
|||
//copy # Copy selection |
|||
//paste # Paste selection |
|||
//rotate [angle] |
|||
//flip [direction] |
|||
# Schematics (save/load to disk) |
|||
//copy |
|||
//schem save mcedit filename # This save file to plugics/WorldEdit/Schematics |
|||
//schem load mcedit filename # This load file from plugics/WorldEdit/Schematics |
|||
//paste # Paste loaded schematics |
|||
# Brush |
|||
//brush clipboard [-a] # Paint with the clipboard. -a to append, not pasting air. |
|||
# ... |
|||
# Shape generation |
|||
# ... |
|||
# Utility |
|||
//fill id [radius] [depth] # Fill an area with block 'id', up to 'radius' and depth 'depth' |
|||
//fixlava # Levels out nearby lava pool |
|||
//fixwater # Levels out nearby water pool |
|||
//thaw # Remove snow |
|||
/ex [size]/[size] # Extinguish fire |
|||
//drain # Drains all nearby pools of laval or water |
|||
//green # Greens the area by adding grass to dirt |
|||
# Maintenance |
|||
//regen # Revert selected area to original seed blocks |
|||
</source> |
</source> |
||
=== Cannot start the server === |
|||
* I had issue due to '''jline''', which was parsing my <tt>/root/.inputrc</tt> file!!! |
|||
=== PlotSquared === |
|||
<source lang=text> |
|||
Wiki: https://github.com/IntellectualSites/PlotSquared/wiki |
|||
$ java -jar craftbukkit.jar help |
|||
229 recipes |
|||
<source lang="bash"> |
|||
27 achievements |
|||
/plot merge # Merge all neighbours plot (must be claimed beforehand) |
|||
Jul 10, 2013 3:00:24 AM net.minecraft.server.v1_5_R3.MinecraftServer main |
|||
# !!! DISPOSE now will delete ALL merged plots |
|||
SEVERE: Failed to start the minecraft server |
|||
/plot unlink # Unmerge |
|||
java.lang.IllegalArgumentException: No enum constant org.bukkit.craftbukkit.libs.jline.console.Operation.DYNAMIC_COMPLETE_HISTORY |
|||
at java.lang.Enum.valueOf(Enum.java:236) |
|||
at org.bukkit.craftbukkit.libs.jline.console.Operation.valueOf(Operation.java:24) |
|||
at org.bukkit.craftbukkit.libs.jline.console.ConsoleKeys.loadKeys(ConsoleKeys.java:245) |
|||
at org.bukkit.craftbukkit.libs.jline.console.ConsoleKeys.loadKeys(ConsoleKeys.java:71) |
|||
at org.bukkit.craftbukkit.libs.jline.console.ConsoleKeys.<init>(ConsoleKeys.java:43) |
|||
at org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.<init>(ConsoleReader.java:146) |
|||
at org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.<init>(ConsoleReader.java:126) |
|||
at net.minecraft.server.v1_5_R3.MinecraftServer.<init>(MinecraftServer.java:106) |
|||
at net.minecraft.server.v1_5_R3.DedicatedServer.<init>(DedicatedServer.java:34) |
|||
at net.minecraft.server.v1_5_R3.MinecraftServer.main(MinecraftServer.java:653) |
|||
at org.bukkit.craftbukkit.Main.main(Main.java:152) |
|||
</source> |
</source> |
||
The solution was simply to remove the binding to ''dynamic-complete-history'' in the <tt>.inputrc</tt> file. |
|||
=== [https://www.spigotmc.org/resources/dynmap.274/ dynmap] === |
|||
=== Wrong plugin version === |
|||
* The following message indicates a mismatch between server and plugin version: |
|||
01:14:18 CONSOLE: [WARNING] WorldEdit: Failed to do NMS safe block set |
|||
;Render the maps |
|||
=== Frequent disconnect === |
|||
* Do <code>/dynmap fullrender world</code> to start rendering of world <code>world</code>. |
|||
Getting frequently disconnect from server, with message: |
|||
* Do <code>/dynmap cancelrender world</code> to cancel rendering. |
|||
lost connection: Internal Exception: io.netty.handler.timeout.ReadTimeoutException |
|||
;View maps |
|||
See https://bugs.mojang.com/browse/MC-34947 |
|||
* Visit http://localhost:8123 (or http://myserver:8123). |
|||
== How-to == |
|||
; Possible causes: |
|||
* Java garbage collector on the server taking too much time. |
|||
* Server triggering disconnects on the client side when loading/generating new chunks. |
|||
* Related to a save spike [https://bugs.mojang.com/browse/MC-34947] |
|||
* Related to file {{file|data/Mineshaft.dat}} taking too much CPU |
|||
* At the same time, I had lot of connection loss on the wifi (mandala laptop). Could this be related? |
|||
=== Import a single-player world === |
|||
; Possible fixes: |
|||
* Restart the server |
|||
; Import a single player world |
|||
* Install Oracle Java 7 on the server |
|||
* Copy SP world to say {{file|./world_singleplayer}} |
|||
* Change the GC settings [https://bugs.mojang.com/browse/MC-34947]. Use <code>-XX:+UseG1GC</code> instead of <code>-XX:MaxGCPauseMillis=200</code>: |
|||
* You need to guess the world ''environment'' (usually either <tt>NORMAL</tt> or <tt>FLAT</tt>) and if needed the generator used (see doc for more information). |
|||
java -XX:+UseG1GC -jar minecraft_server.jar nogui |
|||
: To get the list of available environment: |
|||
* Tweak connection mtu settings [http://www.minecraftforum.net/forums/support/modded-client-support/1956855-internal-exception-io-netty-handler-timeout]: |
|||
/mv env |
|||
netsh interface ipv4 set subinterface "Local Area Connection" mtu=750 store=persistent |
|||
* In the server: |
|||
* rename {{file|data/Mineshaft.dat}} to {{file|data/Mineshaft.old}} |
|||
<source lang="bash"> |
|||
* upgrade to 1.7.10 |
|||
/mv import world_singleplayer NORMAL # Import with default generator |
|||
/mv import world_singleplayer NORMAL FLAT # Import with FLAT generator |
|||
</source> |
|||
=== Create PlotMe world === |
|||
<source lang=bash> |
|||
/mv create plotworld normal -g PlotMe # Must use 'plotworld', or see PlotMe/config.yml |
|||
/mangaddp Default creativegates.use # In the PlotMe world, or user can't use creative gates anymore |
|||
/mangaddp Default plotme.use # Give user access to plotme commands |
|||
/mangaddp Default plotme.limit.1 # Limit to 1 plot / user |
|||
/plotme weanywhere # To use worldedit anywhere (protection against grief) |
|||
/mvm set monsters false # To prevent mobs spawning |
|||
/mvm set animals false # To prevent animals spawning |
|||
</source> |
|||
Edit file <tt>plugins/Multiverse-Core/config.yml</tt>: |
|||
<source lang=text> |
|||
prefixchat: 'false' |
|||
</source> |
|||
== Tips == |
|||
=== Summon any horses === |
=== Summon any horses === |
||
From [http://www.planetminecraft.com/blog/how-to-summon-any-horses-in-minecraft/]. |
From [http://www.planetminecraft.com/blog/how-to-summon-any-horses-in-minecraft/]. |
||
Line 224: | Line 528: | ||
/summon EntityHorse ~ ~1 ~ {Type:0,Tame:1,SaddleItem:{id:329},ArmorItem:{id:417}} # ArmorItem: 417 to 419 |
/summon EntityHorse ~ ~1 ~ {Type:0,Tame:1,SaddleItem:{id:329},ArmorItem:{id:417}} # ArmorItem: 417 to 419 |
||
/summon EntityHorse ~ ~1 ~ {Type:0,Tame:1,Variant:0} # Variant: 0..6, 256..262, 512..528, 768..774, 1024..1030 |
/summon EntityHorse ~ ~1 ~ {Type:0,Tame:1,Variant:0} # Variant: 0..6, 256..262, 512..528, 768..774, 1024..1030 |
||
=== Convert PlotMe to PlotSquared === |
|||
I installed a brand new Spigot server, and wanted to import an old PlotMe world. Here's what I did: |
|||
* Copy the world directory {{file|plotworld/}} from old server to the new server. |
|||
* Copy the PlotMe configuration directory {{file|plugins/PlotMe/}} from old server to the new server. |
|||
* Delete PlotSquared configuration directory {{file|plugins/PlotSquared/}}. |
|||
* Start the server. |
|||
The conversion started automatically. Here's the log after conversion occured: |
|||
<source lang=text> |
|||
[20:13:47 INFO]: Using connector: com.plotsquared.bukkit.database.plotme.ClassicPlotMeConnector |
|||
[20:13:47 INFO]: PlotMe->PlotSquared: PlotMe conversion has started. To disable this, please set 'enabled-components -> plotme-converter' to false in the 'settings.yml' |
|||
[20:13:47 INFO]: PlotMe->PlotSquared: Connecting to PlotMe DB |
|||
[20:13:47 INFO]: PlotMe->PlotSquared: Collecting plot data |
|||
[20:13:47 INFO]: PlotMe->PlotSquared: - plotmePlots |
|||
[20:13:47 INFO]: PlotMe->PlotSquared: Updating bukkit.yml |
|||
[20:13:47 INFO]: PlotMe->PlotSquared: Copying config for: plotworld |
|||
[20:13:47 INFO]: - plotmeDenied |
|||
[20:13:47 INFO]: PlotMe->PlotSquared: - plotmeAllowed |
|||
[20:13:47 INFO]: PlotMe->PlotSquared: Collected 29 plots from PlotMe |
|||
[20:13:47 INFO]: PlotMe->PlotSquared: Creating plot DB |
|||
[20:13:48 INFO]: PlotMe->PlotSquared: Saving configuration... |
|||
[20:13:48 INFO]: === IMPORTANT === |
|||
[20:13:48 INFO]: THIS MESSAGE MAY BE EXTREMELY HELPFUL IF YOU HAVE TROUBLE CONVERTING PlotMe! |
|||
[20:13:48 INFO]: - Make sure 'UUID.read-from-disk' is disabled (false)! |
|||
[20:13:48 INFO]: - Sometimes the database can be locked, deleting PlotMe.jar beforehand will fix the issue! |
|||
[20:13:48 INFO]: - After the conversion is finished, please set 'plotme-converter' to false in the 'settings.yml' |
|||
[20:13:48 INFO]: PlotMe->PlotSquared: Invalid world in PlotMe configuration: plotworld |
|||
[20:13:48 INFO]: PlotMe->PlotSquared: Please wait until database conversion is complete. You will be notified with instructions when this happens! |
|||
[20:13:49 INFO]: Batch 1: 29 | com.intellectualcrafters.plot.object.Plot |
|||
[20:13:49 INFO]: Batch 1: 29 | com.intellectualcrafters.plot.database.SQLManager.SettingsPair |
|||
[20:13:49 INFO]: PlotMe->PlotSquared: Database conversion is now complete! |
|||
[20:13:49 INFO]: - Stop the server |
|||
[20:13:49 INFO]: - Disable 'plotme-converter' and 'plotme-convert.cache-uuids' in the settings.yml |
|||
[20:13:49 INFO]: - Correct any generator settings that haven't copied to 'settings.yml' properly |
|||
[20:13:49 INFO]: - Start the server |
|||
</source> |
|||
Then |
|||
* stop the server, |
|||
* In {{file|plugins/PlotSquared/config/Settings.yml}}, set <code>plotme-converter</code> to <code>false</code> |
|||
* Start the server |
|||
* Import the world with <code>mv import plotworld normal -g PlotSquared</code> |
|||
=== Convert an old world === |
|||
Importing old world in recent Minecraft version generates many glitches when exploring unvisited part of the map. |
|||
See [https://www.howtogeek.com/213964/how-to-upgrade-your-old-minecraft-maps-for-seamless-transitions-to-new-biomes/ this guide] for tips on how to convert these worlds. |
Latest revision as of 00:48, 14 February 2022
Links
- Servers [1]
- The original server from Mojang.
- The most popular server
- Server API (don't know what it means exactly)
- Server-side tools (for large servers)
- Spigot/Bukkit plugins
- See section below.
- Forge/Cauldron mods
- See section below.
- Free Minecraft server
- Aternos.org — Free minecraft server
Installation log
Installation
Must install
- A Minecraft server. This can be either Minecraft vanilla, Bukkit, CraftBukkit, Spigot, Forge, Cauldron...
- A startup/backup script.
- In case of Bukkit/Spigot/Cauldron, one or several plugins.
- In case of Forge/Cauldron, one or several mods.
Spigot
Spigot is an optimized Craftbukkit server. This is the server I used for Minecraft 1.12.2, then upgraded to Minecraft 1.15.2 on our home server.
Following Spigot BuildTools guide:
mkdir spigot_buildtools
cd spigot_buildtools
wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
git config --global --unset core.autocrlf
java -jar BuildTools.jar
- Minecraft 1.15.2
The procedure is mostly the same, except that it only produces a single file (spigot-1.15.2.jar). The other file was only produced as an alternative to Spigot (in case of uncompatibility), and hence are not necessary.
When the build is complete, we copy spigot-1.15.2.jar and rename it to spigot.jar (we also delete the obsolete craftbukkit.jar).
- Minecraft 1.12.2
This creates 2 jar files: craftbukkit-1.12.2.jar and spigot-1.12.2.jar.
Then follow install instructions [2]:
- Copy craftbukkit-1.12.2.jar and spigot-1.12.2.jar in a directory dedicated to the minecraft server, and rename to craftbukkit.jar and spigot.jar.
- Start the server with:
java -Xms1G -Xmx1G -XX:+UseConcMarkSweepGC -jar spigot.jar
More links (used for Spigot on Raspberry Pi):
- http://picraftbukkit.webs.com/pi-minecraft-server-how-to
- http://www.howtogeek.com/173044/how-to-run-low-cost-minecraft-on-a-raspberry-pi-for-block-building-on-the-cheap/
- http://www.raspberrypi.org/forums/viewtopic.php?f=78&t=75882
PaperMC
PaperMC is recent alternative to Spigot and Craftbukkit, touted as superfast.
It is recommended by EssentialX plugin [3].
Not tried yet.
CraftBukkit
Recommended line for starting CraftBukkit [4]:
java -d64 -Xincgc -Xmx1024M -jar craftbukkit.jar nogui
Cauldron and Forge
Cauldron is the new name of MCPC+, ie. basically Spigot + Forge API. Cauldron allows for running servers using both CraftBukkit plugins and Forge mods (like Mo'Creatures). I used Cauldron as Minecraft server up to Minecraft 1.7.2/1.7.10.
- Best way for installing is to run the Cauldron installer (see download page)
- When launched, it runs like a standard Spigot / Craftbukkit server.
Configuration
server.properties
See server.properties.
- server message (including formatting).
motd=\u00A7c-=\u00A76Welcome to \u00A7lI.M.M.I.E\u00A7r\u00A7c=-
Server icon
Simply create a 64x64 PNG file and save it as file server-icon.png in server folder root [5]
Bukkit / Spigot plugins
Plugins greatly enhanced the gameplay and provide many new features. Here some links where we can download plugins:
Often times plugins are available both on Spigot and Bukkit site. It is interesting to view both pages as they might contain different information (and even sometimes different versions!).
Below I list some plugins. Plugins in bold are those I'm currently using; in that case, they are prefixed with the minecraft version (e.g. (mc 1.12.2) or (mc 1.15.2)). Stroke through are plugins that are no longer available. (Try me) indicates very promising plugins I need to try some day.
- World management
- (mc 1.12.2, 1.15.2) Multiverse [6]
- Multiverse is the most popular multi-world plugin for minecraft server.
- (mc 1.12.2, 1.15.2) Multiverse Core [7], the main plugin. Compatible Bukkit 1.12 & 1.15.
- (mc 1.12.2, 1.15.2) Multiverse Portals [8], to get portals. Compatible Bukkit 1.12 & 1.15.
- (mc 1.12.2, 1.15.2) Multiverse Nether Portals [9], to get portals to the nether. Compatible Bukkit 1.12 & 1.15.
- (mc 1.15.2) Multiverse Sign Portals [10], to edit nether portals with sign or use signs as portals. Compatible Bukkit 1.15.
- (mc 1.12.2, 1.15.2) Per World Inventory [11], to manage inventories. This replace the old multiverse-inventory plugin. Compatible Bukkit 1.12, and 1.14 (not 1.15 so far, problem?).
- Essential / permission
- (mc 1.12.2, 1.15.2) EssentialX [12] (Install jenkins build)
- An up-to-date fork of Essentials. Provide basic (but usually good enough) support for permissions, spawn, chat, signs, economy, group manager. Compatible Bukkit 1.12. Also essentialsx here. It requires the Vault plugin.
- Not sure what is the difference with other permission plugins (like PermissionEx).
- All essentials plugins must have matching version. I downloaded them from the Jenkins build, except Group Manager that is available separately.
- (mc 1.12.2, 1.15.2) EssentialsX Chat (Install jenkins build)
- (mc 1.12.2, 1.15.2) EssentialsX Spawn (Install jenkins build)
- (mc 1.12.2, 1.15.2) EssentialsX Group Manager [13] (available separately, must match version though).
- (mc 1.12.2, 1.15.2) Vault [14]. Seems to federate all permission-related plugins. Compatible Bukkit 1.11.
- Essential [15]. Original plugin. Seems outdated.
- Creative
- (mc 1.12.2) WorldEdit [16], an easy-to-use in-game editor. Compatible Bukkit 1.12.
- Crashed twice on me in Spigot 1.12.2. Time to look for alternatives? Switched to FAWS.
- (mc 1.12.2, 1.15.2) Fast Async World Edit (FAWE) [17] (wiki).
- AsyncWorldEdit [18], an alternative to WorldEdit.
- (mc 1.12.2, 1.15.2) PlotSquared [19], compatible 1.12, is a more up-to-date version of PlotMe (mc 1.8.1).
- Economy
- iConomy is discontinued.
- (mc 1.12.2, 1.15.2) EssentialX [20]. Provide basic support for economy. See Essential Economy.
- (mc 1.12.2) CraftConomy [21], can use MySQL and suited to multiserver. Compatible 1.12, actively maintained. Installed in parallel of Essential.
- (mc 1.15.2) The New Economy [22]. A new economy plugin compatible with 1.15 (seen here).
- Economy-related
- (mc 1.12.2, 1.15.2) Jobs reborn [23]
- (mc 1.12.2, 1.15.2) Time is Money [24]
- (Try me) Mobs hunting [25]. Looks really interesting, but maybe redundant with Jobs.
- KillerMoney [26]. Some simple mob-kill reward plugin.
- Essential
- Group Manager. Also available here.
- Essential Chat, latest build here.
- Essential Spawn, latest build here.
- Commands
- To create a block, must right-click with empty hand on the block we want to add the command to.
- The same applies for copying a block. We must right click with an empty hand.
- Another command-sign plugin.
- Factions
- Anti-grief
- (mc 1.12.2, no version for 1.15.2) CreeperHeal [29]
Plugin to consider installing:
- Worlguard
- Citizens
- OpenInv.
- ChestShop
- DynMap
- PlayerHeads
- Lift
- Lockette
- TalkingMob
- (mc 1.12.2 -- no 1.15.2 available yet --) CityWorld [30]
Plugins I installed in older bukkit server but that are no longer maintained / useful:
Mods
Mod to try on the server:
Installation - Minecraft <= 1.7.10
Start / stop init script
Forge mods
Use Cauldron + forge to run a server that accepts both CraftBukkit plugins and Forge mods
- Supported mods
- Mo' creatures v6.2.0 R2
- Simply install the mods in minecraft server mod directory (./mods)
CraftBukkit Troubleshoot
Essentials / permissions debug
To debug permission issues easily, set plugins/Essentials/config.yml:
# More output to the console.
debug: true
Cannot start the server
- I had issue due to jline, which was parsing my /root/.inputrc file!!!
$ java -jar craftbukkit.jar help
229 recipes
27 achievements
Jul 10, 2013 3:00:24 AM net.minecraft.server.v1_5_R3.MinecraftServer main
SEVERE: Failed to start the minecraft server
java.lang.IllegalArgumentException: No enum constant org.bukkit.craftbukkit.libs.jline.console.Operation.DYNAMIC_COMPLETE_HISTORY
at java.lang.Enum.valueOf(Enum.java:236)
at org.bukkit.craftbukkit.libs.jline.console.Operation.valueOf(Operation.java:24)
at org.bukkit.craftbukkit.libs.jline.console.ConsoleKeys.loadKeys(ConsoleKeys.java:245)
at org.bukkit.craftbukkit.libs.jline.console.ConsoleKeys.loadKeys(ConsoleKeys.java:71)
at org.bukkit.craftbukkit.libs.jline.console.ConsoleKeys.<init>(ConsoleKeys.java:43)
at org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.<init>(ConsoleReader.java:146)
at org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.<init>(ConsoleReader.java:126)
at net.minecraft.server.v1_5_R3.MinecraftServer.<init>(MinecraftServer.java:106)
at net.minecraft.server.v1_5_R3.DedicatedServer.<init>(DedicatedServer.java:34)
at net.minecraft.server.v1_5_R3.MinecraftServer.main(MinecraftServer.java:653)
at org.bukkit.craftbukkit.Main.main(Main.java:152)
The solution was simply to remove the binding to dynamic-complete-history in the .inputrc file.
Wrong plugin version
- The following message indicates a mismatch between server and plugin version:
01:14:18 CONSOLE: [WARNING] WorldEdit: Failed to do NMS safe block set
Frequent disconnect
Getting frequently disconnect from server, with message:
lost connection: Internal Exception: io.netty.handler.timeout.ReadTimeoutException
See https://bugs.mojang.com/browse/MC-34947
- Possible causes
- Java garbage collector on the server taking too much time.
- Server triggering disconnects on the client side when loading/generating new chunks.
- Related to a save spike [31]
- Related to file data/Mineshaft.dat taking too much CPU
- At the same time, I had lot of connection loss on the wifi (mandala laptop). Could this be related?
- Possible fixes
- Restart the server
- Install Oracle Java 7 on the server
- Change the GC settings [32]. Use
-XX:+UseG1GC
instead of-XX:MaxGCPauseMillis=200
:
java -XX:+UseG1GC -jar minecraft_server.jar nogui
- Tweak connection mtu settings [33]:
netsh interface ipv4 set subinterface "Local Area Connection" mtu=750 store=persistent
- rename data/Mineshaft.dat to data/Mineshaft.old
- upgrade to 1.7.10
Maintenance
CraftBukkit server
- Clear server log
- Use LogManager:
/logclear
- Clear core-protect db.
- On the console,
/co purge t:7d
(only data older than 24h can be purged from the console) - In game,
/co purge t:30d
(only data older than 30 days can be purged from in-game)
CraftBukkit Plugins
- PlotMe (used on CraftyServ)
- InfinitePlots
- Multiverse-Core (used on CraftyServ)
- Lockette (used on CraftyServ)
- CombatTag (used on CraftyServ)
- BukkitBackup
- Essentials
- PermissionsBukkit (forum page [34])
- Some plugins from same source
- CoreProtect
- LogManager
- A small plugin to clear the server log from in-game, w/o need to restart the server (
/logclear
)
- This plugin allows for preventing / controling explosion.
# Enable TNT explosion as follows (note that tnt chain are allowed by default)
/acs tnt yield 80 # 80% of exploded blocks will be available back
/acb tnt damage player true # TNT will damage players...
/acb tnt damage mob true # ... and mobs
/acb tnt explodeblocks true # TNT will explode neighbouring blocks
# To protect a zone against TNT (even via TNT cannon)
/rg flag spawn tnt deny
- DynMap
- AntiBotUltra
- Edit plugins/AntiBotUltra/config.yml to change the white list message (use § for colors)
- AntiCheat
- X-Ray Detective (analyse mining behavior through statistical analysis)
- Problem with these statistical tool is that they only detect after damage is done (all diamonds have been removed), and that they require administration effort.
- Anti X-Ray (commands
/antixray
)
- Nice analysis of pro and con of other anti-X-ray tools (statistical, obfuscator), and how to detect xraying users.
- X-Ray informer (commands
/xcheck
) - X-Ray Catcher (inactive, based on pattern analysis)
- Rate of X-Ray (statistical, command
/rx
)
Basic commands
tphere <PLAYER>
changepw <oldpwd> <newpwd>
Give commands
Give an enchanted object (see Enchanting/ID).
# Give an enchanted sword
/give John diamond_sword 1 0 {ench:[{id:16,lvl:5}]}
# Give an enchanted book
/give @p enchanted_book 1 0 {StoredEnchantments:[{id:16,lvl:2}]}
Essentials
- kits
To enable kits via signs, give to user the following permissions:
essentials.signs.kit.use
essentials.kits.<kitname>
To enable kits via /kit command, give the following permissions to the users:
essentials.kit
essentials.kits.<kitname>
Multiverse
- Permissions
/manuadd histerical Default plotworld # Change group of a user in a given world
- Set world difficulty
/mvmodify set ? # Get help
/mvm set ? # Same, shorter
/mvm set difficulty PEACEFUL
/mvm set mode CREATIVE world # Can modify any world
This setting has precedence over server setting. To change server setting, edit file Server.properties on the server:
spawn-monsters=false
- Prevent spawning
/mvmodify set monsters false # Prevent monsters spawning
/mvmodify set animals false # Prevent animals spawning
- Set spawn for current world
/mv set spawn
- Create a portal
To create a portal, first create a selection containing a portal frame, then create the portal with /mpc
.
/mvpc portal_name # Create a portal named 'portal_name'
/mvpm dest world_name # Set the destination of current portal to spawn of world 'world_name'
/mvpm dest p:dest_portal_name # Set the destination of current portal to portal dest_portal_name
/mvpm dest p:dest_portal_name:n # Set the destination of current portal to portal dest_portal_name, changing player direction to 'north'
/mvpm dest p:dest_portal_name:s # Set the destination of current portal to portal dest_portal_name, changing player direction to 'south'
/mvpm dest p:dest_portal_name:e # Set the destination of current portal to portal dest_portal_name, changing player direction to 'east'
/mvpm dest p:dest_portal_name:w # Set the destination of current portal to portal dest_portal_name, changing player direction to 'west'
/mvp sel portal_name # Select portal 'portal_name' as current portal
/mvp remove portal_name # Destroy portal 'portal_name'
- Create inventory group ([35])
/mvinv group # Interactive command
Create
emma_survival # Create the group, named 'emma_survival'
emma_survival # We add the three following worlds
emma_survival_nether
emma_survival_end
@
all # We add all shares (so all is shared, inventory, money...)
@
WorldEdit
Reference: FAWS commands, WorldEdit
# Selection
//wand # Give the user the editing wand (axe)
//sel # Clear selection
//sel cuboid # Default mode, ie. cuboid: L click: 1st point, R click: 2nd point
//sel extend # Enable extend mode: L click: start, R click: extend cuboid
# More //sel mode available. Type //sel ? to see
//chunk # Select the entire chunk
# Selection modification
outset 30 -h # Extend selection in all direction horizontally
shift 1 up # Shift selection 1 block up
# Basic edit
//set [id] # Fill selection with block 'id' (numeric or block name)
//set 80%stone,20%cobble # Idem, with fill percentage
//set 0 # Fill with air
//replace [idfrom] [idto] # Replace given block id with given block id
//outline [id] # Set outline
//walls [id] # Set walls
//undo # Undo edition
//redo # Redo edition
# Masked edit
//gmask 0 # Only affect 0/air blocks
//set stone
//gmask # Reset global mask
# Copy / Paste
//copy # Copy selection
//paste # Paste selection
//rotate [angle]
//flip [direction]
# Schematics (save/load to disk)
//copy
//schem save mcedit filename # This save file to plugics/WorldEdit/Schematics
//schem load mcedit filename # This load file from plugics/WorldEdit/Schematics
//paste # Paste loaded schematics
# Brush
//brush clipboard [-a] # Paint with the clipboard. -a to append, not pasting air.
# ...
# Shape generation
# ...
# Utility
//fill id [radius] [depth] # Fill an area with block 'id', up to 'radius' and depth 'depth'
//fixlava # Levels out nearby lava pool
//fixwater # Levels out nearby water pool
//thaw # Remove snow
/ex [size]/[size] # Extinguish fire
//drain # Drains all nearby pools of laval or water
//green # Greens the area by adding grass to dirt
# Maintenance
//regen # Revert selected area to original seed blocks
PlotSquared
Wiki: https://github.com/IntellectualSites/PlotSquared/wiki
/plot merge # Merge all neighbours plot (must be claimed beforehand)
# !!! DISPOSE now will delete ALL merged plots
/plot unlink # Unmerge
dynmap
- Render the maps
- Do
/dynmap fullrender world
to start rendering of worldworld
. - Do
/dynmap cancelrender world
to cancel rendering.
- View maps
- Visit http://localhost:8123 (or http://myserver:8123).
How-to
Import a single-player world
- Import a single player world
- Copy SP world to say ./world_singleplayer
- You need to guess the world environment (usually either NORMAL or FLAT) and if needed the generator used (see doc for more information).
- To get the list of available environment:
/mv env
- In the server:
/mv import world_singleplayer NORMAL # Import with default generator
/mv import world_singleplayer NORMAL FLAT # Import with FLAT generator
Create PlotMe world
/mv create plotworld normal -g PlotMe # Must use 'plotworld', or see PlotMe/config.yml
/mangaddp Default creativegates.use # In the PlotMe world, or user can't use creative gates anymore
/mangaddp Default plotme.use # Give user access to plotme commands
/mangaddp Default plotme.limit.1 # Limit to 1 plot / user
/plotme weanywhere # To use worldedit anywhere (protection against grief)
/mvm set monsters false # To prevent mobs spawning
/mvm set animals false # To prevent animals spawning
Edit file plugins/Multiverse-Core/config.yml:
prefixchat: 'false'
Summon any horses
From [36].
/summon EntityHorse ~0 ~1 ~0 /summon EntityHorse ~0 ~1 ~0 {Tame:1} /summon EntityHorse ~0 ~1 ~0 {Type:4,Tame:1} # Type: 0 to 4 /summon EntityHorse ~0 ~1 ~0 {Type:0,Tame:1,SaddleItem:{id:329}} # /summon EntityHorse ~0 ~1 ~0 {Type:1,Tame:1,SaddleItem:{id:329},ChestedHorse:1} /summon EntityHorse ~ ~1 ~ {Type:0,Tame:1,SaddleItem:{id:329},ArmorItem:{id:417}} # ArmorItem: 417 to 419 /summon EntityHorse ~ ~1 ~ {Type:0,Tame:1,Variant:0} # Variant: 0..6, 256..262, 512..528, 768..774, 1024..1030
Convert PlotMe to PlotSquared
I installed a brand new Spigot server, and wanted to import an old PlotMe world. Here's what I did:
- Copy the world directory plotworld/ from old server to the new server.
- Copy the PlotMe configuration directory plugins/PlotMe/ from old server to the new server.
- Delete PlotSquared configuration directory plugins/PlotSquared/.
- Start the server.
The conversion started automatically. Here's the log after conversion occured:
[20:13:47 INFO]: Using connector: com.plotsquared.bukkit.database.plotme.ClassicPlotMeConnector
[20:13:47 INFO]: PlotMe->PlotSquared: PlotMe conversion has started. To disable this, please set 'enabled-components -> plotme-converter' to false in the 'settings.yml'
[20:13:47 INFO]: PlotMe->PlotSquared: Connecting to PlotMe DB
[20:13:47 INFO]: PlotMe->PlotSquared: Collecting plot data
[20:13:47 INFO]: PlotMe->PlotSquared: - plotmePlots
[20:13:47 INFO]: PlotMe->PlotSquared: Updating bukkit.yml
[20:13:47 INFO]: PlotMe->PlotSquared: Copying config for: plotworld
[20:13:47 INFO]: - plotmeDenied
[20:13:47 INFO]: PlotMe->PlotSquared: - plotmeAllowed
[20:13:47 INFO]: PlotMe->PlotSquared: Collected 29 plots from PlotMe
[20:13:47 INFO]: PlotMe->PlotSquared: Creating plot DB
[20:13:48 INFO]: PlotMe->PlotSquared: Saving configuration...
[20:13:48 INFO]: === IMPORTANT ===
[20:13:48 INFO]: THIS MESSAGE MAY BE EXTREMELY HELPFUL IF YOU HAVE TROUBLE CONVERTING PlotMe!
[20:13:48 INFO]: - Make sure 'UUID.read-from-disk' is disabled (false)!
[20:13:48 INFO]: - Sometimes the database can be locked, deleting PlotMe.jar beforehand will fix the issue!
[20:13:48 INFO]: - After the conversion is finished, please set 'plotme-converter' to false in the 'settings.yml'
[20:13:48 INFO]: PlotMe->PlotSquared: Invalid world in PlotMe configuration: plotworld
[20:13:48 INFO]: PlotMe->PlotSquared: Please wait until database conversion is complete. You will be notified with instructions when this happens!
[20:13:49 INFO]: Batch 1: 29 | com.intellectualcrafters.plot.object.Plot
[20:13:49 INFO]: Batch 1: 29 | com.intellectualcrafters.plot.database.SQLManager.SettingsPair
[20:13:49 INFO]: PlotMe->PlotSquared: Database conversion is now complete!
[20:13:49 INFO]: - Stop the server
[20:13:49 INFO]: - Disable 'plotme-converter' and 'plotme-convert.cache-uuids' in the settings.yml
[20:13:49 INFO]: - Correct any generator settings that haven't copied to 'settings.yml' properly
[20:13:49 INFO]: - Start the server
Then
- stop the server,
- In plugins/PlotSquared/config/Settings.yml, set
plotme-converter
tofalse
- Start the server
- Import the world with
mv import plotworld normal -g PlotSquared
Convert an old world
Importing old world in recent Minecraft version generates many glitches when exploring unvisited part of the map.
See this guide for tips on how to convert these worlds.