1. These forums are being retired. Please ask all questions and help threads and any other type of discussions on GitHub. During this time, new threads and user registrations have been disabled.

2.0 (obsolete) Essentials+ 1.1.1

Useful commands for Terraria servers

  1. Wight

    Wight Administrator
    TShock Admin TShock Mod Plugin Developer Zero Day Plugin Author

    Joined:
    May 20, 2012
    Messages:
    1,599
    Essentials+ is a combination of things from Essentials and things from MoreAdminCommands made better. All commands run asynchronously.
    It does not include Sign Commands.

    Permissions:
    • essentials.find -> Grants access to the /find command.
    • essentials.freezetime -> Grants access to the /freezetime command.
    • essentials.home.delete -> Grants access to the /delhome and /sethome commands.
    • essentials.home.tp -> Grants access to the /myhome command.
    • essentials.kickall -> Grants access to the /kickall command.
    • essentials.lastcommand -> Grants access to the /= command.
    • essentials.mute -> Grants access to the improved /mute command.
    • essentials.pvp -> Grants access to the /pvp command.
    • essentials.ruler -> Grants access to the /ruler command.
    • essentials.send -> Grants access to the /send command.
    • essentials.sudo -> Grants access to the /sudo command.
    • essentials.sudo.force -> Extends the capabilities of sudo.
    • essentials.sudo.super -> Allows sudo to be used on anyone.
    • essentials.sudo.invisible -> Causes sudo'd commands to be executed invisibly.
    • essentials.timecmd -> Grants access to the /timecmd command.
    • essentials.tp.back -> Grants access to the /back command.
    • essentials.tp.down -> Grants access to the /down command.
    • essentials.tp.left -> Grants access to the /left command.
    • essentials.tp.right -> Grants access to the /right command.
    • essentials.tp.up -> Grants access to the /up command.
    These permissions can also be found here.

    Commands:
    • /find -> takes a variety of subcommands:
      • -command -> Searches for a specific command based on input, returning matching commands and their permissions.
      • -item -> Searches for a specific item based on input, returning matching items and their IDs.
      • -tile -> Searches for a specific tile based on input, returning matching tiles and their IDs.
      • -wall -> Searches for a specific wall based on input, returning matching walls and their IDs.
    • /freezetime -> Freezes and unfreezes time.
    • /delhome <home name> -> Deletes a home specified by <home name>.
    • /sethome <home name> -> Sets a home named <home name>.
    • /myhome <home name> -> Teleports you to your house named <home name>.
    • /kickall <flag> <reason> -> Kicks every player for <reason>. Valid flag: -nosave -> kick doesn't save SSC inventory.
    • /= -> Repeats your last entered command (not including other iterations of /=).
    • /mute -> Overwrites TShock's /mute. Has subcommands:
      • add <name> <time> -> Adds a mute on user with name <name> for <time>
      • delete <name> -> Removes a mute on user with name <name>
      • help -> Outputs command info
    • /pvp -> Enables/disables PvP status
    • /ruler [1|2] -> Measures distance between points 1 and 2.
    • /sudo [flag] <player> <command> -> Attempts to make <player> execute <command>. Valid flag: -force -> forces the command to be run, independent of <player>'s permissions. Players with the essentials.sudo.super permission can use /sudo on anyone.
    • /timecmd [flag] <time> <command> -> Makes <command> execute after <time>. Valid flag: -repeat -> Makes <command> repeat every <time>
    • /back [steps] -> Takes you back to your previous position. If [steps] is supplied, attempts to take you back to your positions [steps] steps ago.
    • /down [levels] -> Attempts to move you down the map. If [levels] is specified, attempts to move you down [levels] times.
    • /left [levels] -> Same as /down [levels], but to the left.
    • /right [levels] -> Same as /down [levels], but to the right.
    • /up [levels] -> Same as /down [levels], but upwards.
    A list of the commands can be found here.
    Their implementation can be found here.

    Full source is available here.
    Downloadable dll is available here.

    This plugin was mostly made by MarioE, who also added all the asynchronous support.
    The find command was contributed by Wolfje.
    The up|down|left|right commands were contributed by Ijwu.

    I personally did not much except host the repo. Please direct any gratitude you have to those fine members of the community.
     
    • Like Like x 8
  2. Kojiro_S

    Kojiro_S Level 11

    Joined:
    Feb 16, 2014
    Messages:
    659
    Thanks a lot to all involved. Also, a friendly reminder to previous Essentials' users: If you (most likely) miss the InvSee option, Enerdy made a separate plugin dealing with just this option right here.
    Just remember that it's still in "Submission" status, so there may be hidden bugs in the shadows.
     
    • Like Like x 1
  3. pink_panther

    pink_panther Level 9

    Joined:
    Oct 14, 2013
    Messages:
    370
    I'm sold.


    /invsee, /more, /moreall?
     
  4. syntax556

    syntax556 Level 4

    Joined:
    Jun 29, 2013
    Messages:
    78
    i know this is still in Submission but.. for some reason the plugin doesn't work..

    Code:
    [Server API] Error Startup aborted due to an exception in the Server API initialization:
    System.InvalidOperationException: Failed to load assembly "EssentialsPlus.dll". ---> System.InvalidOperationException: Could not create an instance of plugin class "EssentialsPlus.EssentialsPlus". ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeLoadException: Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'EssentialsPlus'.
      at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
      at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
      --- End of inner exception stack trace ---
      at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
      at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
      at System.Activator.CreateInstance (System.Type type, BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[] args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes) [0x00000] in <filename unknown>:0
      at System.Activator.CreateInstance (System.Type type, System.Object[] args, System.Object[] activationAttributes) [0x00000] in <filename unknown>:0
      at System.Activator.CreateInstance (System.Type type, System.Object[] args) [0x00000] in <filename unknown>:0
      at TerrariaApi.Server.ServerApi.LoadPlugins () [0x00000] in <filename unknown>:0
      --- End of inner exception stack trace ---
      at TerrariaApi.Server.
    
     
  5. Wight

    Wight Administrator
    TShock Admin TShock Mod Plugin Developer Zero Day Plugin Author

    Joined:
    May 20, 2012
    Messages:
    1,599
    Cannot reproduce on Windows with and without Mono.
    Can I assume you're using a Linux box to host on?
     
  6. Enerdy

    Enerdy Satellite Admin
    TShock Mod Plugin Developer Zero Day Plugin Author

    Joined:
    Nov 14, 2012
    Messages:
    507
    Yey, we finally got a release! :)

    Not sure why it never made its way into Essentials+, but either no one bothered or it was deemed as "not an essential feature", and although a lot of people would miss it, this is not the right place for it to be. Same thing goes for nicknames, which weren't implemented. Although homes were, so this latter feature might be considered at a later date.

    Just use the plugin for now >_<.
     
  7. Enerdy

    Enerdy Satellite Admin
    TShock Mod Plugin Developer Zero Day Plugin Author

    Joined:
    Nov 14, 2012
    Messages:
    507
    Since this wasn't referenced in the OP, I might as well document it here to help players set up dynamic permissions.

    Dynamic Permissions work similarly to normal permissions, except that they accept an optional, additional parameter attached to the end of the string. A few other programmers have used this in the past, such as MarioE on his WorldEdit plugin (correct me if I'm wrong).

    Members of the superadmin group or any group with the * permission have the maximum possible access to dynamic permissions. The same holds true if # is made *.

    essentials.home.delete.# - Number of homes
    When used in its singular form (essentials.home.delete), # is counted as 1.
    By adding .# to the end of the permission string, where # is any number between 1 and 2147483647, you may increase the limit of homes everyone in that group and any group inheriting from it can have.

    essentials.mute.# - Can only mute groups with a lower value
    When used in its singular form (essentials.mute), # is counted as 1.
    By adding .# to the end of the permission string, where # is any number between 1 and 2147483647, you can manage a group's mute level. The mute level is used when muting players who also possess this permission: You can only mute players with a lower level than you. Ex: A player within a group with essentials.mute.1 may mute anyone without the permission, but not a player within a group with essentials.mute.2. The latter is able to mute anyone without the permission AND the former, as their mute level is higher.

    essentials.sudo.# - Can only force groups with a lower value
    When used in its singular form (essentials.sudo), # is counted as 1.
    By adding .# to the end of the permission string, where # is any number between 1 and 2147483647, you can manage a group's sudo level. This works the same way as the mute level, refer above.

    essentials.kickall.# - Can only kick groups with a lower value
    When used in its singular form (essentials.kickall), # is counted as 1.
    By adding .# to the end of the permission string, where # is any number between 1 and 2147483647, you can manage a group's kick level. This works the same way as the mute level, refer above.
     
    • Like Like x 1
  8. Wight

    Wight Administrator
    TShock Admin TShock Mod Plugin Developer Zero Day Plugin Author

    Joined:
    May 20, 2012
    Messages:
    1,599
    Feel free to make a PR ^^
     
  9. IcyPhoenix

    TShock Contributor

    Joined:
    Jul 27, 2012
    Messages:
    367
    nicknames weren't added because fk dealing with plugin order, and invsee was probably overlooked because its not really that useful unless you care about people cheating gear, so handful of SSC servers are the only people that want it.
     
  10. Enerdy

    Enerdy Satellite Admin
    TShock Mod Plugin Developer Zero Day Plugin Author

    Joined:
    Nov 14, 2012
    Messages:
    507
    This. SSC is not essential to run a server. I won't make a PR now since there's already a separate plugin for it :).

    In the meanwhile, this happened:
    Added flag -l|-list to /myhome to display the user's currently set homes.
     
  11. Awordley

    Awordley Level 0

    Joined:
    Oct 22, 2013
    Messages:
    2
    I believe there is a bug with the command "/back".
    When I use it, it only successfully works when I either die, or use the four direction commands (/up, /down, etc).
    If I try to use it after warping or teleporting to other players, it simply says "Could not teleport back".
    I've had others experiment with /back as well, and they had the same results as I.
     
  12. Enerdy

    Enerdy Satellite Admin
    TShock Mod Plugin Developer Zero Day Plugin Author

    Joined:
    Nov 14, 2012
    Messages:
    507
    There is no "Teleport" event in TShock. I believe the old Essentials simply checked whether one of the commands you referenced was executed, and would then save their position before it finished. Essentials+ does not take this approach, which means only the built-in commands will work with /back.

    We could either take the same approach Scavenger did (although in my opinion it is quite scrappy, and Essentials+ is all about optimization), or simply write our own overrides for these commands.

    EDIT: As I though, here it is.

    On a second though, we do have Teleport packets. I guess we could check for outgoing Teleport packets instead? But then again, that would require specification to ignore non command-induced teleports, such as triggering a Teleporter.
     
  13. Awordley

    Awordley Level 0

    Joined:
    Oct 22, 2013
    Messages:
    2
    Thanks for clearing that up for me.
    I don't mind too much about how /back works, but it would be nice to have a command that was similar to Scavenger's /back. I found it really useful to be able to go back to where I was previously, after teleporting to another player to give assistance.
    I have to say, this plugin is certainly a great improvement to the original essentials and it's certainly very useful. Thanks to everyone involved working on this.
     
  14. IcyPhoenix

    TShock Contributor

    Joined:
    Jul 27, 2012
    Messages:
    367
    Or we can have a secondary event handler that is invoked before teleport is called, because currently the position is updated before the event is called, hence we can't just store past location.
     
  15. popstarfreas

    Plugin Developer

    Joined:
    Feb 27, 2012
    Messages:
    357
    When I attempt to use this plugin I end up getting :
    Code:
    AsyncMethodBuilderCore: ERROR: System.NullReferenceException: Object reference not set to an instance of an object.
      at EssentialsPlus.EssentialsPlus.<OnJoin>d__27.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
      at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__5(Object state)
      at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
      at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
      at System.Threading.ThreadPoolWorkQueue.Dispatch()
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
    And then the server just exits after a few of those, after loading the world.
     
  16. Wight

    Wight Administrator
    TShock Admin TShock Mod Plugin Developer Zero Day Plugin Author

    Joined:
    May 20, 2012
    Messages:
    1,599
    Wight submitted a new resource:

    Essentials+ - Useful commands for Terraria servers

    Read more about this resource...
     
  17. Wolfe

    Wolfe Level 9

    Joined:
    Jan 3, 2012
    Messages:
    386
    I'm also getting this error.
     
  18. Enerdy

    Enerdy Satellite Admin
    TShock Mod Plugin Developer Zero Day Plugin Author

    Joined:
    Nov 14, 2012
    Messages:
    507
    @popstarfreas & @Wolfe - Do you have .NET Framework 4.5? We might've forgot to mention it, but Essentials+ uses new async methods introduced in the new version of the .NET Framework. Users running SEconomy won't have any issues as SEconomy itself already requires them to install this.

    I'm not sure if this is the source of the exception, but since the error originates from an async call, it'd be worth checking out.
     
    • Agree Agree x 1
  19. popstarfreas

    Plugin Developer

    Joined:
    Feb 27, 2012
    Messages:
    357
    I already looked at that. Afaik, from getting the installer to checking registry, I do have .NET 4.5. Although there was an error I didn't see before, about something to do with the DB. I'll try look into it more.
     
  20. Wight

    Wight Administrator
    TShock Admin TShock Mod Plugin Developer Zero Day Plugin Author

    Joined:
    May 20, 2012
    Messages:
    1,599