Shadow is the evolution and spiritual successor to DTSD which was a script written in BASH based off the original Minecraft Control Script. Shadow is designed to collect output from the server and issue console commands based on any number of scripted conditions.
Shadow seeks to aid administrators in the running and maintenance tasks for a server. It is designed to be modular in nature so additional scripts can be added without the need to modify existing scripts. Mysql is integrated to handle storage of information and complex retrieval and cross-referencing that BASH alone cannot handle.
Shadow effectively creates a scripted server side modification that is a complete solution for running a server. Shadow is in pre-alpha testing phase at the moment. The Shadow team is looking for other modders/scripters as well as ideas to implement into the script.
If you are interested in helping out or just offering suggestions or ideas you would like to see happen please feel free to respond.
Target install for pre-Alpha: Ubuntu 14.04 with Mysql 5.5
At the request of several people I have automated install with a script.
Ok moving right along, lots more work to do to get to Alpha so maybe towards the end of this month. I would encourage anyone who is interested in testing at this point to go ahead.
Does it include all the previous commands / tools (or at least some of the most commonly used ones) already? Because we'll adopt and test for you immediately if so.
Yes it includes most of the functions plus some more stuff. I am working on several interesting projects. For instance Arenas, Duelling, and AI gaurds are some of the more interesting ones I will have finished before Alpha is released
Well I don't know what could be wrong offhand. You can't issue a !help command and get a response then take a look at CONFIGDTSD_SCRIPTSCREEN.log to see what the script is doing. You should see things like vote checks and server checks going on.
Yep, everything installed without a hitch. The backup took a while, but that was the only issue that piqued my curiosity because it took so long, but it finished, just had to be patient.
/home/starmade is my StarMade-Starter.Jar directory, it's where I put Shadow's files.
/home/starmade/StarMade is where all of the files actually exist.
(I wasn't sure about this via the readme by how it was phrased, so I went for the least 'dirty' route so it was a 50/50 chance, I suspect this could be what I have that's backwards, however it backed it up correctly and said it found and updated it properly.)
CONFIGDTSD_SCRIPTSCREEN.log (last modification, 12 hrs ago, is it possible to add a timestamp for future releases?)
Code:
Script started on Mon Jul 13 03:04:28 2015
root@sm:/home/starmade# /home/starmade/shadow.dtsd mycreate
/home/starmade/shadow.dtsd setranks
/home/starmade/shadow.dtsd makesearchdb
/home/starmade/shadow.dtsd addevents
/home/starmade/shadow.dtsd taillog &
/home/starmade/shadow.dtsd searchlog &
/home/starmade/shadow.dtsd executelog
ERROR 1060 (42S21) at line 1: Duplicate column name 'COMMAND'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'TIME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CURRENTSECTOR'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LASTPOSITION'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'BOUNTY'
ERROR 1060 (42S21) at line 1: Duplicate column name 'DEATHS'
ERROR 1060 (42S21) at line 1: Duplicate column name 'KILLEDBY'
ERROR 1060 (42S21) at line 1: Duplicate column name 'KILLS'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LASTKILL'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'AMOUNT'
ERROR 1060 (42S21) at line 1: Duplicate column name 'POSTER'
ERROR 1060 (42S21) at line 1: Duplicate column name 'TIME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'WANTED'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CHATSTRING'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LOGDATE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'RECIEVER'
ERROR 1060 (42S21) at line 1: Duplicate column name 'SENDER'
ERROR 1060 (42S21) at line 1: Duplicate column name 'COMMAND'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LOGDATE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'PARAMETER'
ERROR 1060 (42S21) at line 1: Duplicate column name 'DESTROYTIME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'TYPE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'PLAYER'
ERROR 1060 (42S21) at line 1: Duplicate column name 'SHIP'
ERROR 1060 (42S21) at line 1: Duplicate column name 'IP'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'STATUS'
ERROR 1060 (42S21) at line 1: Duplicate column name 'TIME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'IDNUMBER'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'KILLER'
ERROR 1060 (42S21) at line 1: Duplicate column name 'KILLTIME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'VICTIM'
ERROR 1060 (42S21) at line 1: Duplicate column name 'BANKCREDITS'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CONTROLLING'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CONTROLTYPE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CREDITS'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CURRENTIP'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CURRENTSECTOR'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CURRENTVOTE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'FACTION'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LASTCORE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LASTPOSITION'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LASTUPDATE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'ONLINE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'RANK'
ERROR 1060 (42S21) at line 1: Duplicate column name 'TOTALVOTE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'COMMANDSALLOWED'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'SEARCHFUNCTION'
ERROR 1060 (42S21) at line 1: Duplicate column name 'SEARCHSTRING'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'PEACE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'PROTECTED'
ERROR 1060 (42S21) at line 1: Duplicate column name 'TYPE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LOGDATE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LOGSTRING'
ERROR 1060 (42S21) at line 1: Duplicate column name 'STATUS'
ERROR 1060 (42S21) at line 1: Duplicate column name 'TIME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'ATTACHED'
ERROR 1060 (42S21) at line 1: Duplicate column name 'BLOCK'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CREATOR'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CURRENTSECTOR'
ERROR 1060 (42S21) at line 1: Duplicate column name 'DOCKED'
ERROR 1060 (42S21) at line 1: Duplicate column name 'ENTITYTYPE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'FACTION'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LASTCONTROLLER'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LASTPOSITION'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LASTUPDATE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'MASS'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CURRENTSECTOR'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'ATTACHED'
ERROR 1060 (42S21) at line 1: Duplicate column name 'BLOCK'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CREATOR'
ERROR 1060 (42S21) at line 1: Duplicate column name 'CURRENTSECTOR'
ERROR 1060 (42S21) at line 1: Duplicate column name 'DOCKED'
ERROR 1060 (42S21) at line 1: Duplicate column name 'ENTITYTYPE'
ERROR 1060 (42S21) at line 1: Duplicate column name 'FACTION'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LASTCONTROLLER'
ERROR 1060 (42S21) at line 1: Duplicate column name 'LASTPOSITION'
ERROR 1060 (42S21) at line 1: Duplicate column name 'MASS'
ERROR 1060 (42S21) at line 1: Duplicate column name 'NAME'
ERROR 1060 (42S21) at line 1: Duplicate column name 'VALUE1'
ERROR 1060 (42S21) at line 1: Duplicate column name 'VALUE2'
ERROR 1060 (42S21) at line 1: Duplicate column name 'VALUE3'
root@sm:/home/starmade# /home/starmade/shadow.dtsd setranks
The current array COMMANDLIST_RANK1
Here is rank name Ensign
CORE HELP
The current array COMMANDLIST_RANK2
Here is rank name Lieutenant
CORE HELP
The current array COMMANDLIST_RANK3
Here is rank name Commander
CORE HELP
The current array COMMANDLIST_RANK4
Here is rank name Captain
CORE HELP
The current array COMMANDLIST_RANK5
Here is rank name Admiral
BALANCE BANPLAYER BANSTOP CLEAR CORE CREDITS DESPAWN DEPOSIT EXPORT GARAGE GIVE GIVEMETA GIVENAME GODON GODOFF HELP KILL IMPORT INVISION INVISIOFF KICK KILL LISTBOUNTY LOADSHIP POSTBOUNTY PROTECTSTART PROTECTSTOP RESTART RANKME RANKREQUEST RANKSET RANKUSER SHUTDOWN SPAWNSTART SPAWNSTOP STARTERSHIP UNPROTECT TELEPORT TRANSFER WHITEADD WITHDRAW VOTEEXCHANGE VOTEPOINTS
root@sm:/home/starmade# /home/starmade/shadow.dtsd makesearchdb
root@sm:/home/starmade# /home/starmade/shadow.dtsd addevents
this is SCHEDULETYPE REPEAT TIMEVALUE 300 TIMEQUANTITY SECOND SCHEDULECOMMAND EVENT_SERVERSTATUS & EVENTNAME SERVERSTATUS
ERROR 1539 (HY000) at line 1: Unknown event 'SERVERSTATUS'
this is SCHEDULETYPE REPEAT TIMEVALUE 3600 TIMEQUANTITY SECOND SCHEDULECOMMAND EVENT_SERVERVERSION EVENTNAME SERVERVERSION
ERROR 1539 (HY000) at line 1: Unknown event 'SERVERVERSION'
this is SCHEDULETYPE REPEAT TIMEVALUE 43200 TIMEQUANTITY SECOND SCHEDULECOMMAND EVENT_SERVERRESTART EVENTNAME SERVERRESTART
ERROR 1539 (HY000) at line 1: Unknown event 'SERVERRESTART'
this is SCHEDULETYPE REPEAT TIMEVALUE 600 TIMEQUANTITY SECOND SCHEDULECOMMAND EVENT_SERVERMESSAGE EVENTNAME SERVERMESSAGE
ERROR 1539 (HY000) at line 1: Unknown event 'SERVERMESSAGE'
this is SCHEDULETYPE REPEAT TIMEVALUE 60 TIMEQUANTITY SECOND SCHEDULECOMMAND ONINTERVAL_60_VOTECHECK EVENTNAME VOTECHECK
ERROR 1539 (HY000) at line 1: Unknown event 'VOTECHECK'
root@sm:/home/starmade# /home/starmade/shadow.dtsd taillog &
[1] 3470
root@sm:/home/starmade# /home/starmade/shadow.dtsd searchlog &
[2] 3471
root@sm:/home/starmade# /home/starmade/shadow.dtsd executelog
executing ONINTERVAL_60_VOTECHECK
d
Is there a better place you'd prefer to discuss / resolve / communicate about testing?
Since this is pre-alpha WIP you can post stuff here. If you are feeling inclined and you have a reproducible bug the best place would be Github. From the log it looks as if everything is running correctly. You can tail -f this log file to watch it or just re-open it after you have done a few commands like !help. It should register receiving the command. If not then there is an issue there.
The backup zips the entire directory so depending on universe size this can take a long time.
Be sure you update the script with every new release from Github. Being pre-alpha bugs are being fixed and systems changed at such a high rate that if you not running the latest release I won't be able to help much.
Also on a side note did you edit ranks.dtsd to allow ranks other than Admiral to use chat commands? by default rank is Ensign and they can only use !help and !core
Yeah so the default setup would only allow you to use !core and !help, no other command would work until you gave yourself admiral rank or edited the ranks.dtsd file to allow Ensigns to do more commands than just those two.
You should be able to see all this happening in the script log. Since this is a pre-Alpha production it is the primary place to go when wondering if something is or is not working with the script. Also if you are familiar with Mysql the Serverstatus table shows a running series of events based on what the server is doing.
I did give myself the Admiral rank and that was without error. (error did happen because I didn't log in after the install yet, so that's working).
Not entirely familiar with MySQL much yet, mostly server management / setup. Where's the default storage location usually? I can research it and look it over.
If it is not showing up then likely there is an issue with Mysql. You can look in coreloops.dtsd to see how the system works. One function feeds the log into the database, the next function matches log lines between lines numbers and dumps it into another table. The last step is this table is executed line by line. If you not seeing any commands it is likely there problem would be there. You can also send me logs to look at or I can troubleshoot if you want.
Just found an issue with Mysql 5.6+. It does not work right with the script. Since 5.5 is default for 14.04 I am not going to address this issue right away because it would make the script incompatible with 5.5 or require a major rewrite in how Mysql is called throughout the script. I am punting this issue to Alpha.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.