Minecraft
Currently the server is running 1.4.6-R0.4 Dev for our Minecraft server. We have now updated the plugins to be compatible with 1.4.6
Load Minecraft:
/usr/bin/java -Djline.terminal=jline.UnsupportedTerminal -client -Xmx7132M -jar craftbukkit.jar nogui -d yyyy-MM-dd HH:mm:ss -nojline
Load McMyAdmin:
tmux new-session -t minecraft cd /home/user ./MCMA2_Linux_x86_64 | tee /var/www/sites/byw*.co.uk/logs/minecraft.log
If you want to connect from elsewhere to view the above output/console load the screen session:
ssh user@localhost -pXXXX tmux ls tmux attach 0
Using CTRL + D will quit screen and close any processes running within it. To exit safely do:
CTRL + B, let go, then press D on it's own.
When downloading a backup from McMyAdmin, it comes in the mcb format. Change it to .zip and you can then unzip it into a folder and restore to the server.
Allowing PvP
Personally, for WorldGuard's pvp flag to work we had to ensure:
- Essentials plugin had pvp = true
- McMyAdmin control panel had Configuration > Game Settings > Allow Player vs Player combat
- server.properties file had pvp = true
- WorldGuard had __global__ set to pvp deny
- WorldGuard then could have specific regions set to pvp allow
Backpack
Reduce/downgrade Backpack space:
cd /Minecraft/plugins/Backpack/backpacks/world ls -lah
Edit the value next to "contents-amount:" in the user's .yml file.
Chat
/tell PlayerName will whisper a message to a player. This option will not show in a console.
/msg PayerName will show it as YourPlayerName -> Me to the other Player but be private
Prefix and Suffix
Never use McMyAdmin's Prefix and Suffix boxes, as you likely will not be able to remove them after you have set them without removing the group and re-adding it.
Connection reset
[Metrics]
Set opt-out to true in plugins/PluginMetrics/config.yml
This by default is false.
In minecraft.log "[INFO] Connection reset"
touch reset.sh ; chmod +x reset.sh ; vim reset.sh #!/bin/bash netstat -pantu | grep -v LISTEN | grep 25565 >> reset.log echo -e "\n-------------------------------------------------------------------------------------------" date +%R netstat -pantu | grep -v LISTEN | grep 25565
Then do the following in two separate SSH windows:
tail -f minecraft/install/directory/logs/minecraft.log watch -n 1 ./reset.sh
Then match up the times, and block the IP address from the server list website that is causing the message:
iptables -A INPUT -s 50.116.54.77 -j DROP iptables-save iptables -L
Configuration
Lava
Allowing lava seems to be easiest by creating a group that can do it and then doing:
# Allow lava buckets [lavabucket] allow ignore-groups=Everyone on-use=notify,log
The below method seems to fail
ignore-perms=worldguard.lavabucket.exempt ignore-groups=admins,mods,Lava on-use=deny,tell,notify,log
Current errors
On /reload, this appears:
[WARNING] [PermissionsEx] Can't obtain PermissionsEx instance
[WARNING] [PermissionsEx] Reinjecting all permissibles
Doesn't show on startup.
Current issues
None
DynMap
Configuring Maps and Worlds using dmap
FAQ
Render all: /dynmap fullrender
Pause render: /dynmap pause all
Start render: /dynmap pause none
Disable world render: /dmap worldset WorldName enabled:false
Hide a player: /dynmap hide PlayerName
Show a player: /dynmap show PlayerName
https://github.com/webbukkit/dynmap/wiki/Web-UI-Parameters
http://bywatercraft.co.uk:8123/?worldname=world&mapname=surface
Enjin
- domain.co.uk//admin/games/minecraft-plugin/gid/6207-0
- Click Vault
- If using Unix download the Vault.jar by doing wget http://dev.bukkit.org/media/files/655/849/Vault.jar
- Download the Enjin plugin
- Upload it via FTP to your server and it's Minecraft plugins directory
- Click Add Server
- Note down the enjinkey
Essentials
Allow TNT
We use http://dev.bukkit.org/server-mods/antitnt and http://dev.bukkit.org/bukkit-mods/naughty-blocks which means we can have TNT enabled but then only provide users access via the permissions AntiTNT.tnt and naughtyblocks.tnt
Essentials and WorldGuard don't. If you are using Essentials and WorldGuard do this:
vim plugins/Essentials/config.yml
10 = lava :: 11 = still lava :: 46 = TNT :: 327 = lava bucket
Default:
alert: on-placement: 10,11,46,327 on-use: 327 on-break: placement: 10,11,46,327
Remove 46 from the placement line.
Ensure plugins/WorldGuard/config.yml has the following:
ignition: block-tnt: false block-tnt-block-damage: false
Find players home
/home playername:home
/home <user>:<name>
Broken:
/home user:
Get user's coordinates
If you have Essentials, use /getpos PlayerName
Kill specific mob/s
/killall MobName (e.g. Blaze)
Mail players
/mail send FullPlayerName Message
To read the mail, do /mail read
To clear the mail, do /mail clear
Respawn at home instead of spawn
Change this:
When users die, should they respawn at their first home or bed, instead of the spawnpoint?
respawn-at-home: false
to
respawn-at-home: true
Set players home
WIP
Stop checking user's permissions
If you get the following message a lot in your server.log:
Essentials: checking if Player has plugin.permission - true/false
vim plugins/Essentials/config.yml
Set debug: to false.
Teleport player to you
/tpohere playername
Teleport to coordinates
/tppos x y z
Teleport to player
As OP, /tpo playername
As player, /tpa playername
Updating Essentials
mkdir /root/scripts/testing/ess-core mkdir /root/scripts/testing/ess-extra cd /root/scripts/testing/ess-core
Latest stable:
wget http://dev.bukkit.org/media/files/671/664/Essentials.zip
or latest pre-release:
wget http://dev.bukkit.org/media/files/693/255/Essentials.zip
unzip Essentials.zip rm Essentials.zip cd /root/scripts/testing/ess-extra
Latest pre-release
wget http://dev.bukkit.org/media/files/693/254/Essentials-extra.zip unzip Essentials-extra.zip rm Essentials-extra.zip
Stop the server.
Make backups:
mkdir /root/backups/essentialsBackup/ cd /home/mc/Minecraft/plugins/
Either copy or move the files/folders:
cp -v Essentials/ EssentialsAntiBuild.jar EssentialsChat.jar Essentials.jar EssentialsGeoIP.jar EssentialsProtect.jar EssentialsSpawn.jar EssentialsXMPP.jar /root/backups/essentialsBackup/ -R
mv -v Essentials/ EssentialsAntiBuild.jar EssentialsChat.jar Essentials.jar EssentialsGeoIP.jar EssentialsProtect.jar EssentialsSpawn.jar EssentialsXMPP.jar /root/backups/essentialsBackup/
Copy the new version of the files into place:
Essentials Core:
cd /root/scripts/testing/ess-core cp -v EssentialsAntiBuild.jar EssentialsChat.jar Essentials.jar EssentialsProtect.jar EssentialsSpawn.jar /home/mc/Minecraft/plugins -R
Essentials Extras:
cd /root/scripts/testing/ess-extra cp -v EssentialsGeoIP.jar EssentialsXMPP.jar /home/mc/Minecraft/plugins -R
Fixed errors
Modifyworld pass event
[SEVERE] Could not pass event InventoryClickEvent to Modifyworld v1.19.4 org.bukkit.event.EventException
Fix: Disable the Modifyworld plugin and allow people to edit the world via the essentials.build permission.
Notes: http://www.minecraftforum.net/topic/1763125-severe-could-not-pass-event-inventoryclickevent-to-modifyworld-v1194
https://github.com/PEXPlugins/PermissionsEx/wiki/Modifyworld#wiki-mw-configuration
NoSplosion will cause Endermen to NOT spawn
"Disables all explosions vanila or mods (tekkit etc...) and fire from destroying blocks as well as endermen from spawning. All explosions and fire still damage players but do not damage the environment."
NoCheatPlus
[INFO] [NoCheatPlus] Enabling NoCheatPlus v3.6.1
[SEVERE] Error occurred while enabling NoCheatPlus v3.6.1 (Is it up to date?)
Error : Minecraft server could not be started
java.lang.VerifyError: (class: fr/neatmonster/nocheatplus/checks/chat/ChatListener, method: commandPreprocess signature:(Lorg/bukkit/event/player/PlayerCommandPreprocessEvent;)V) Incompatible argument to function
Error : An incompatible, damaged or outdated addon is preventing the server from starting.
Error : Java Error: java.lang.VerifyError: (class: fr/neatmonster/nocheatplus/checks/chat/ChatListener, method: commandPreprocess signature: (Lorg/bukkit/event/player/PlayerCommandPreprocessEvent;)V) Incompatible argument to function
Outdated version, install up-to-date version: http://dev.bukkit.org/server-mods/nocheatplus/
Your configuration might be outdated!
The best thing to do is just do:
mv config.yml old.config.yml diff config.yml old.config.yml
Then reload the server configuration or NCP plugin itself:
/reload /ncp reload
Give items
http://www.minecraftinfo.com/IDList.htm
/give [playername] [data-value] [amount]
http://www.minecraftwiki.net/wiki/Data_values
Install Feed The Beast on a Unix server
Add a user and make a directory specifically for the mod, e.g.:
add user ftb mkdir server cd /home/ftb/server su ftb
Then do:
tmux new-session -n NameTheSession su user cd ~/server wget http://www.creeperrepo.net/direct/FTB2/6ce418a51b200ece8cb3c509ba9e094a/modpacks%5EUltimate%5E1_0_1%5EUltimate_Server.zip mv modpacks^Ultimate^1_0_1^Ultimate_Server.zip Ultimate_Server.zip unzip Ultimate_Server.zip vim ServerStart.sh
Edit the values as you see fit.
chmod +x ServerStart.sh ./ServerStart.sh | tee ftb.log
It will error out if you're already running a Minecraft server on the default port 25565. If it does, do CTRL + C. To change this,
vim server.properties
Set the server-port to something that is not 25565. Then make sure the user:group ownership is correct on the server folder and all files and directories below it.
./ServerStart.sh | tee ftb.log
CTRL + B then d to quit the tmux session.
Errors
If you get something like below, you likely need to disable some mods (for me it was mods/railcraft.jar and mods/MineFactoryReloaded.jar):
[SEVERE] [ForgeModLoader] Detected leaking worlds in memory. There are 4 worlds that appear to be persisting. A mod is likely caching the world incorrectly 2013-04-23 15:54:59 [SEVERE] [ForgeModLoader] The world 7debb392 (world) has leaked. 2013-04-23 15:54:59 [SEVERE] [ForgeModLoader] The world 3e6abeb4 (world) has leaked.
Install Votifier
Install the plugin as normal by placing the .jar file in your plugins folder: http://dev.bukkit.org/server-mods/votifier
Then reload the server and do:
cat plugins/Votifier/rsa/public.key
Copy the code into the area of the server listing website you are using.
SimpleVoteListener
SimpleVoteListener can perform commands and broadcast messages
Load MCMyAdmin and Minecraft on server start
ssh -p port user@localhost crontab -e
Press insert and add:
@reboot screen -dmS minecraft /home/mc/MCMA2_Linux_x86_64
Then do:
:wq
You can then if you wish do:
exit touch /etc/init.d/minecraftd ; chown user:user /etc/init.d/minecraftd vim /etc/init.d/minecraftd
Lock chests
Use Lockette. To snoop in chest and to do this without message, edit this file:
/home/user/Minecraft/plugins/Lockette/config.yml
And edit the following:
allow-admin-snoop: true broadcast-snoop-target: ''
Kill all MCMA processes
ps aux|grep MC|grep x86|awk {'print $2'}
Results of the above command.
for a in `!!` for a in `ps aux|grep MC|grep x86|awk {'print $2'}` > do > kill -9 $a > done ps aux|grep MC|grep x86|awk {'print $2'}
McMyAdmin Licence Key Recovery
McMyAdmin help in console command:
/?
Migrate from one *nix server to another
scp / rsync the data in the Minecraft directory across. Then do:
apt-get install unzip apt-get install openjdk-7-jre openjdk-7-jdk cd /usr/local wget http://mcmyadmin.com/Downloads/etc.zip unzip etc.zip
Go to serverIPaddress:8080 in your browser. To login, check the details in McMyAdmin.conf. To change the password you need to stop McMyAdmin:
/quit in console
The file stores the password as MD5, to convert your password use this: http://www.md5hashgenerator.com/index.php
Mob Spawning Ranges
Multiverse
This page has been moved to the above link as our server does not used Multiverse any more, it used Multiworld.
Multiworld
Creating worlds:
End world (type = end):
/mw create WorldName Type
Import world
If you have old worlds say from Multiverse, when the server is restarted Mulitworld will unload these worlds and not show up in /mw list. Therefore you need to backup your worlds and in game/console do:
/mw create OriginalWorldName
Where OriginalWorldName is the name of the world as it was/is and it will load it from now on and be viewable in /mw list
Ensure the permissions are correct!
List worlds
/mw list
Teleport to another worlds
/goto WorldName
Redstone
Powering a column of pistons
Restart required
If you use PermissionsBukkit with McMyAdmin, if you make a change you normally need to restart the Minecraft server to get it to see the changes.
A huge advantage of setting the Permissions Export to PermissionsEx is when a permission is added to McMyAdmin it automatically reloads the configuration, this is shown in the console by:
[INFO] Permissions file successfully reloaded
[INFO] Permissions reloaded
If you op or de-op a player from ops.txt and the Administrators group in McMyAdmin.
To set negative permissions in PermissionsEx, use - -permission before the other permissions.
Restore backup from McMyAdmin
mkdir BACKUPOFWORLDShhmm cp -v world world_nether world_the_end BACKUPOFWORLDShhmm/ -R mkdir movedawayworlds mv world world_nether world_the_end movedawayworlds
Then restore the backup via the McMyAdmin control panel.
Security
To check when a player was last online, their IP address, what world they are in, do:
/seen playername
Useful:
screen -xr mcmonitor CTRL A + D screen -xr mysqlmcmon cd /home/mc/Minecraft cat server.log | grep "YYYY-MM-DD" | grep User | grep -v indestructible cat server.log | grep User | grep -v 'indestructible\|fell from a high place'
Hawkeye
Log everything:
Install Hawkeye by doing this manually or through a server control panel. In Unix, do:
/home/user/Minecraft/plugins/HawkEye# cat config.yml log: lava-bucket: true pvp-death: true other-death: true chat: true join: true open-container: true container-transaction: true teleport: true sign-place: true sign-break: true flint-steel: true block-place: true block-break: true enderman-pickup: true spawnmob-egg: true crop-trample: true general: max-lines: 0 log-item-drops-on-death: true cleanse-period: 20m cleanse-age: 0 delete-data-on-rollback: true log-ip-addresses: true debug: false debug-level: low max-radius: 0 give-user-tool: true tool-block: '17' default-here-radius: 5 default-tool-command: '' check-for-updates: true log-delay: 2 mysql: hawkeye-table: hawkeye port: 3306 player-table: hawk_players username: root world-table: hawk_worlds hostname: localhost max-connections: 10 password: 'InsertMySQLPasswordHere' database: hawkminecraft #you can rename this if you wish ignore-worlds: - thisworldisignored - soisthisone command-filter: - /login - /restartsrv - /register - /spawn block-filter: - NONE containertransaction-filter: chest: true doublechest: true furnace: true dispenser: true version: 1.1.0
Create the database:
mysql -p create database hawkminecraft; show databases; use hawkminecraft show tables;
This may be empty. If so (more than likely), log into your minecraft server and do /reload. Then go back into MySQL:
use hawkminecraft show tables; +-------------------------+ | Tables_in_hawkminecraft | +-------------------------+ | hawk_players | | hawk_worlds | | hawkeye | +-------------------------+ select * from hawk_players; select * from hawk_worlds; select * from hawkeye; quit
And you can now do /hawk in game. To check a block, do /hawk tool , then left click a block and it will show you the block information.
Get table structure and players
desc hawkeye; select * from hawk_players;
Look at logs
select * from hawkeye ORDER BY data_id DESC LIMIT 100000;
See region information
/region info area
It should output something like:
Region: area, type: shape, Priority: X
Flags: use: ALLOW, mob-spawning: DENY (OR ALLOW)
Bound: (x) (z)
server.properties file
Set flyspeed
Default is 1
For yourself:
/flyspeeed 2
For others:
/flyspeed 2 playername
Set warps
/setwarp NewWarpName
Go to warps:
/warp WarpName
List warps:
/warp
If you have per-warp-permission set to true in the config.yml then you can limit what warps players can use. This also controls what players would see with /warp, hence why both essentials.warp and essentials.warp.list are used.
Synchronise Nether Portals
Tools
ASCII SSH Bukkit Menu (via screen)
Init script
tmux
http://unix.stackexchange.com/questions/13953/sending-text-input-to-a-detached-screen/13954#13954
Update CraftBukkit
Stop the server, then do:
mv craftbukkit.jar versioncraftbukkit.jar wget http://dl.bukkit.org/latest-rb/craftbukkit.jar
Or download the development/beta build and do:
mv craftbukkit-dev.jar craftbukkit.jar
Start the server
Log out and back into MCMyAdmin.
World Edit
Place .schematic files in /home/user/Minecraft/plugins/WorldEdit/schematics
Import them by doing:
//schematic load filename
Then you can do //paste in Minecraft to paste it into the world where you are.
Fill an area
//wand
Select position 1 and 2. Then do:
//set block
World Guard
To protect an area, do:
//wand
Then click the first position then the second position with the wooden axe.
If you only do one layer, you can do //expand to go up or down, e.g.:
//expand UpValue DownValue up //expand 10 0 up
This would expand up 10 blocks from the single layer but do 0 down.
Then do:
/region define newnameforarea owner
Owner can be left blank.
To get information on the area you just created, do:
/region info newnameforarea
Rename region
You cannot do this without editing the database manually. If the area is not too big, just remove it and re-add it.
Set flags
To set flags, see this page: http://wiki.sk89q.com/wiki/WorldGuard/Regions/Flags
To stop building and PvP but to allow use, you would do:
/rg flag areaname build deny /rg flag areaname pvp deny /rg flag areaname use allow