• If you have a mod, tool or prefab, please use the Resources section. Click Mods at the top of the forums.

[MOD] Coppis Additions (NEW)

heh I can see a lot of bot commands are appearing in mods (not just this one). I'm gonna have to come up with MOAR commands to stay ahead xD The bot is able to switch from using / to any symbol (except \ currently).
Just curious, are any of your new commands inspired by the bot's commands? Its a very public bot and I totally don't mind being copied. Its to be expected really.

I'll have to start testing the new stuffs :D How stable is it?
Only the "/who near" is inspired by the one i saw in botman. As far as i know your /who does not query historical location data. The rest has been in my private mod for over 1,5 years actually. Just porting over to coppis. But ive made sure they can be disabled or switched to another prefix and command to maintain maximum compatibillity.

What other commands other than /who near are you using that i implemented? I did check your website to make sure i wasnt using any of the ones you use except who (cause thats actually the most logical name for loctrack querying. Like "who" was within 5 blocks of my current location last 3 hours). Ive seen that the first time when i had to use CBSM for a few weeks in between a server migration. But please let me know if it bothers you, i can easily make the default command something like /loctrack (just like the consolecommand). I wouldnt have one bit of a problem with that. Admins can however change it back to /who if they like that more, nothing i can do about that ;) .

As far as chatcommands go, this will be it. Only 4.1 will bring 4 new ones (which i made sure are not in use by the most popular servermanagers). They will accompanying Advanced Claims which im porting over now. /acf (add claim friend) , /rcf (remove claim friend) and /lcf (list claim friends). And one (/protect) for giving yourself or a player a "protective bubble" to do admin work without being bothered by zombies or protect a poor new player that spawned in on a bloodmoon. They also do exist for over 1,5 years allready but lemme know if they are gonna cause conflicts, i still have time to come up with other abbrivations :)

I have no intention of making coppis a servermanager whatsoever. The chatcommands i implemented now are pretty much the ones that will be in there. Rest will be consolecommands for servermanagers (or admins) to use (like the new cgc, ocn, loctrack). /hostiles was-is the most popular command on my server of all time :D And the /ft /ftw /mv /mvw /setwp /delwp and /listwp admin only commands made my and my admins life so much easier for so long i just had to port that over. They do not conflict with any of your commands and even offer more funtionality. So i strongly hope by "copying" you dont mean you think you have the exclusive right to some very basic functionality as teleporting or nouns and verbs like set,fly, move and waypoint or saving coordinates to a database and use them one way or another (actually im pretty proud to say Coppis is the first and only apimod that has an embedded indexed database engine for that. Can even put it on a gamehost server). Just let me know about the who command as thats the only conflicting command. Im willing to change that despite the fact that botman wasnt the one that invented the term.

Its very stable. Do try it!

Cheers mate

-edit- ah i missed /protect appearantly. You seem to use that for baseprotection. Will use another command for the protective bubble :) . /bubble sounds kinda nice too.

 
Last edited by a moderator:
Code:
if (message.StartsWith("/bubble"))
{
   _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, "Received Command: /bubble", "Server", false, "", false));
   string parameter = message.Split(new string[] { "/bubble" }, StringSplitOptions.None)[1].Trim();
   bool success = Protect.Exec(_cInfo, parameter);
   if (!success) _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, "
   [FFA07A]Something went wrong! Could not activate protective bubble![-]", "Server", false, "", false));
   return false;
}
Done. That wont conflict anymore. Wont change my internal class though. That wont be in your way :D

Cheers

 
Just a suggestion for the command aliases, could you look at implementing something like I did that lets you edit the alias in a config file so if there are conflicts people can change them.

The command namespace is rapidly filling up :)

Also maybe add a prefix for the default alias (add other aliases without a prefix for the short text). This will make it easier for people to tell which mod a command belongs to. (the help command will show the first alias in the list for each command)

e.g.

bc-

dj-

maybe cp- for this mod? I'll ask OC if he can use st- for server tools maybe

feel free to use bits of my code in my config reader script

 
Last edited by a moderator:
Just a suggestion for the command aliases, could you look at implementing something like I did that lets you edit the alias in a config file so if there are conflicts people can change them.
The command namespace is rapidly filling up :)

Also maybe add a prefix for the default alias (add other aliases without a prefix for the short text). This will make it easier for people to tell which mod a command belongs to. (the help command will show the first alias in the list for each command)

e.g.

bc-

dj-

maybe cp- for this mod? I'll ask OC if he can use st- for server tools maybe

feel free to use bits of my code in my config reader script
allready did that for the one chatcommand i knew would conflict:

Code:
 if (message.StartsWith(PersistentData.PersistentContainer.Instance.LocationTracking.Command.Trim().ToLower()))
                       {
                           string command = PersistentData.PersistentContainer.Instance.LocationTracking.Command.Trim().ToLower();
                           if (PersistentData.PersistentContainer.Instance.LocationTracking.CommandEnabled)
                           {
                               _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, "Received Command: " + command, "Server", false, "", false));
                               string parameter = message.Split(new string[] { command }, StringSplitOptions.None)[1].Trim();
                               bool success = Who.Exec(_cInfo, parameter);
                               if (!success) _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, "[FFA07A]Something went wrong! I was not able to check who was here.[-]", "Server", false, "", false));
                               return false;
                           }
                           else
                           {
                               _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("[FFA07A]Locationtrack command {0} is not enabled[-]", command), "Server", false, "", false));
                               return false;
                           }
                       }
Will look into prefixing consolecommands. As they are indeed bound to conflict sometime.

But for chatcommands i think its okey to keep their uniqueness. i like m short like /acf /rcf etc.. prefixing them i would not like. ;)

Cheers

 
allready did that for the one chatcommand i knew would conflict:
Code:
 if (message.StartsWith(PersistentData.PersistentContainer.Instance.LocationTracking.Command.Trim().ToLower()))
                       {
                           string command = PersistentData.PersistentContainer.Instance.LocationTracking.Command.Trim().ToLower();
                           if (PersistentData.PersistentContainer.Instance.LocationTracking.CommandEnabled)
                           {
                               _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, "Received Command: " + command, "Server", false, "", false));
                               string parameter = message.Split(new string[] { command }, StringSplitOptions.None)[1].Trim();
                               bool success = Who.Exec(_cInfo, parameter);
                               if (!success) _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, "[FFA07A]Something went wrong! I was not able to check who was here.[-]", "Server", false, "", false));
                               return false;
                           }
                           else
                           {
                               _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("[FFA07A]Locationtrack command {0} is not enabled[-]", command), "Server", false, "", false));
                               return false;
                           }
                       }
Will look into prefixing consolecommands. As they are indeed bound to conflict sometime.

But for chatcommands i think its okey to keep their uniqueness. i like m short like /acf /rcf etc.. prefixing them i would not like. ;)

Cheers
yeah np with chat commands, I dont have any of those anyway so thats between you and servertools ;)

 
yeah np with chat commands, I dont have any of those anyway so thats between you and servertools ;)
Mostly smeg lol :D . But thats just a matter of playing a gentlemans game. Like i saw botman uses /protect allready for some other funtionality. So being a gentleman i changed my old /protect to /bubble and poof the conflict is gone :D No need to deliberately get in eachothers way.

Cheers and thanks for the script!

 
Last edited by a moderator:
Aight. Almost done porting Advanced Claims over. Just implementing 1 more new type (timed claim) on Spectral Force's request.

There will be:

  • Normal claim (tp player out of an area)
  • Reversed claim (keep player in an area (jail))
  • Leveled claim (for underground bases or tunnelsystems)
  • Timed claim (for giving a raided player some rest to rebuild base (PVP) )


The claimed areas are divided in quadrants. Where a player gets teleported out is depending on what quadrant he/she is intruding.

If he/she breaches the claimed area in the NW quadrant for example, the player will get tp'd out to the NW corner (+ 5 blocks) of the claim for example. If driving a minibike into an advanced claimed area the mod will warn them to NOT get off their bike or loose it while in the advanced claimed area :D

When a player is trapped in a reversed claim and exits he/she will get teleported to the center of the reversed claim.

There will be 3 chatcommands available for players to allow/disallow other players to enter advanced claimed areas:

/acf add claim friend

/rcf remove claim friend

/lcf list claim friends

Other changes coming to 4.1:

Chat,- and console command for admins to summon a protective bubble for themselves (or players). All zombies/hostiles within the bubble will instantly die. The bubble is attached to the admin or player so will follow any movements. It will automatically fall off if a player disconnects.

Chatcommand: /bubble or /bubble <playername> (partial names supported)

Consolecommand: protect <steamid/playername>

Output of loctrack showtrack has a nicer formatted datetime now as i forgot to format it completely in 4.0.

Records will appear as yyyy-MM-dd HH:mm:ss x,y,z

There will be a NightTime announcer which will conveniently show the number of days until next bloodmoon. It will popup at 20:00 ingame time telling its 2 hours before nighttime if enabled. It can be enbled/disabled by console command (an announcenighttime) and the hordecycle is configurable to provide accurate bloodmoon information (for 21 day bloodmoon cycle mods for example))

All consolecommands will get a new primairy one with prefix "cp-". This way all coppis commands will be neatly grouped in the help display. And they will be recognizable as coppis commands.

Cheers

 
Last edited by a moderator:
Update 4.1!

Update time!

Version 4.1 (2018.02.20)

Fixed:

- datetime format in "loctrack showtrack". Now displays yyyy-MM-dd HH:mm:ss x,y,z

Added:

- Advanced Claims

- NightTime Announcer

- Protective Bubble

- Primairy consolecommand aliasses. All start with "cp-" to identify them as CoppisAdditions commands

Check out previous post and chatcommand,- and consolecommand wiki on github (links in OP)

All i wanted to port from my private mod to coppis is done now. No more a release every few days from now on :D .

I decided to keep the remote trading system for myself so that wont get ported over. Need to keep some exclusive stuff for attrackting players to my server when i go public again lol :D

Enjoy!

Cheers

 
Disabling commands

For the waypoints is there a way to turn them off so that normal players cannot use them?

Also same question for the new advanced landclaims, so that they don't affect PVP servers where raiding is allowed?

 
For the waypoints is there a way to turn them off so that normal players cannot use them?Also same question for the new advanced landclaims, so that they don't affect PVP servers where raiding is allowed?
Waypoints are admin only by default.

Advanced claims can also only be added by admins. If you dont create one, they dont exist :D

You dont have to use either of them, but spectral force has requested the timed advanced claim especially as a PVP functionality.

You can decide to give a raided player some time to recover (rebuild base or something) by giving him a timed claim of 24 hours (or whatever time you want). When the time has passed the claim will disappear automatically. The advanced claim is virtual not a real landclaim block as you know it.

Cheers

 
Last edited by a moderator:
Suggestion, is it not possible to handle this automatically via the mod so that the upgrade doesn't require user intervention?

"ATTENTION: the persistent data structure has changed significantly. Delete the old /Saves/Random Gen/seedname/CoppisPeristentData.bin before starting your server after updating this modversion."

Surely the mod can do a check and perform the deletion when it initialises?

 
Don't forget the bot has a /who command. Its not that that Ragnarok is seeing?
Correct, I've moved all Botman commands to a separate prefix. Mostly so that I don't get double the response with commands such as /day7. Or getting the "unknown command" response with custom commands from server tools.

 
Don't forget the bot has a /who command. Its not that that Ragnarok is seeing?
nope

Cheers

- - - Updated - - -

Suggestion, is it not possible to handle this automatically via the mod so that the upgrade doesn't require user intervention?
"ATTENTION: the persistent data structure has changed significantly. Delete the old /Saves/Random Gen/seedname/CoppisPeristentData.bin before starting your server after updating this modversion."

Surely the mod can do a check and perform the deletion when it initialises?
Yeah allready did that for this fix. I used my existing class for the locationtracker but it totally forgot to make it persistentdata compatible (had settings in xml before). So it didnt save the turning off of the command to persistent data.

Little bug. But im home from work now so im on it.

Cheers

 
Update 4.2!

Update!

Version 4.2 (2018.02.21)

Fixed:

- bug in loctrack: location tracker settings not being saved

Thanks to RagnarokPVP for reporting!

Cheers

 
There's one irritation with Coppi's mod that I'd love to see work better. The bot can generate and spawn a maze and it does it block by block while you watch. The problem is that the affected chunk flashes (if that is the right word) and you constantly have it vanish and re-appear while the blocks are spawning in. I'm happy to show you if you need to see it. Is there something you can do to stop it doing that? Stompy knows the answer to this one but I'd like it fixed in Coppi's mod too.

I have your updated mod (from yesterday) and I haven't yet tested much. I'll try generating a maze to see if the visual issue is still there.

[Edit] Yep still a blinky mess.

 
Last edited by a moderator:
Back
Top