Minecraft

From Server Knowledge Base
Jump to navigationJump to search

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

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

[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

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

Command reference

Allow TNT

We use http://dev.bukkit.org/server-mods/antitnt which means we can have TNT enabled but then only provide users access via the permission AntiTNT.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

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

Allow teleport access to only one world

These don't work:

multiverse.teleport.self.w:DeathSwap
multiverse.teleport.self.w.DeathSwap
multiverse.teleport.self.DeathSwap

Having to provide multiverse.teleport.self.w currently.

https://github.com/Multiverse/Multiverse-Core/wiki/Command-Reference#wiki-teleport
https://github.com/Multiverse/Multiverse-Core/wiki/Destinations

Command Reference

Create new world

/mv create worldname TYPE

Hide world name in chat

In /plugins/Multiverse-Core/config.yml set prefixchat: 'false' to prefixchat: 'true'

Import backup of world

Delete the uid.dat file in the <worldname> folder before importing.

Rename default world

Set world alias and name

Set alias:

/mvm set alias newname oldname

Set world name

It is best to backup and remove the world, change the folder name and re-import it using /mv import foldername WORLDTYPE, then add it to plugins/Multiverse-Core/worlds.yml

Note: Set original world to be zworld. world is an older backup before zzd with several users homes pasted in.

Teleport player to another world

/mv tp them worldname

The End Portal doesn't work

Do /mvlist

You will need to load your worlds that link together (e.g. world and world_nether). You may need to do the following:

  • Add the permission multiverse.access.world_the_end to a player or their group
  • Ensure there are blocks one level below the End Portal.
/mvnp unlink end world
/mvnp unlink end world_the_end
/mvnp link end world world_the_end
/mvnp show end

If you get the following message when enter the Overworld portal from The End:

This portal leads nowhere!

/mvnp link end world_the_end world

To disable END portals in world do:


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

Using it

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

Fill an area

//wand

Select position 1 and 2. Then do:

//set block

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.

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