No description
Find a file
2021-02-23 09:01:16 +00:00
.github oh god the pain 2021-02-14 01:21:35 +00:00
BetterSecondbot Update BetterAtHome.cs 2021-02-21 02:21:20 +00:00
Core corrects helper info for the PayAvatar command 2021-02-23 09:01:16 +00:00
LibreMetaverse Update BakeLayer.cs 2021-02-16 07:52:27 +00:00
LibreMetaverse.StructuredData please stop fighting me on this 2021-02-14 02:47:01 +00:00
LibreMetaverseTypes please stop fighting me on this 2021-02-14 02:47:01 +00:00
openmetaverse_data update datafolder 2021-02-14 05:40:45 +00:00
Shared corrects a issue with better at home 2021-02-18 11:46:07 +00:00
.dockerignore oh god the pain 2021-02-14 01:21:35 +00:00
.gitignore why 2021-02-14 01:59:15 +00:00
BetterSecondBot.sln please stop fighting me on this 2021-02-14 02:47:01 +00:00
Dockerfile god dam it 2021-02-14 14:05:18 +00:00
libopenjpeg-dotnet-2-1.5.0-dotnet-1-i686.so please stop fighting me on this 2021-02-14 02:47:01 +00:00
libopenjpeg-dotnet-2-1.5.0-dotnet-1-x86_64.so please stop fighting me on this 2021-02-14 02:47:01 +00:00
libopenjpeg-dotnet-2-1.5.0-dotnet-1.dylib please stop fighting me on this 2021-02-14 02:47:01 +00:00
NuGet.Config add missing env value and move nuget config 2020-12-20 10:01:41 +00:00
openjpeg-dotnet-x86_64.dll please stop fighting me on this 2021-02-14 02:47:01 +00:00
openjpeg-dotnet.dll please stop fighting me on this 2021-02-14 02:47:01 +00:00
README.md update readme and workspaces for scoped tokens 2021-02-21 01:04:43 +00:00

  _____                          _ _           _
 /  ___|                        | | |         | |
 \ `--.  ___  ___ ___  _ __   __| | |__   ___ | |_
  `--. \/ _ \/ __/ _ \| '_ \ / _` | '_ \ / _ \| __|
 /\__/ /  __/ (_| (_) | | | | (_| | |_) | (_) | |_
 \____/ \___|\___\___/|_| |_|\__,_|_.__/ \___/ \__|

Secondbot

Secondbot is a CommandLine based bot for SecondLife based on libremetaverse retargeted for .net core.

madpeter/secondbot on dockerhub

Status


Codacy Badge

CII Best Practices

Helpfull stuff


Commands Wiki

Web UI

  • note: if you running in windows and have HTTP enabled you will want to add HTTP support via a command promt with the following command where 8185 is the port you wish to use. "netsh http add urlacl url=http://*:8185/ user=Everyone"

Releases

These are pre compiled versions for the most upto date please use docker or compile it yourself.

View releases

Starting multiple bots from the same executable in windows


Create a shortcut (rename it for the bot) and 'madpeterbot' after the end of the target

so the target would look something like this: BetterSecondBot.exe" madpeterbot

save changes to the shortcut and your ready to go.

Custom commands


Custom commands allow you to create a chain of commands triggered by one command

Format

<Custom command name>[!!!]<corelib command 1>[{-}]<corelib command 2>[{-}]...

example command

sayexample!!!say|||Hello{-}delay|||2500{-}say|||Bye

if your using docker to create a custom command you would create a new env value that starts with "cmd_" followed by the custom command name example: cmd_sayexample

and the value would be the actions example: say|||Hello{-}say|||Bye

If you want to pass custom args set [C_ARG_1] (this goes up to 5)

and the command would look something like this

sayexample!!!say|||Hello [C_ARG_1]{-}delay|||2500{-}say|||Bye [C_ARG_2]

HTTP web interface

by setting

Http_Enable to true Http_Host to http://*:8080 Security_WebUIKey to a vaild code (12 letters+numbers long or more)

you will be able to connect to the bot via HTTP and use the webUI to control the bot!

Dev server UI or Host it yourself

HTTP scoped tokens


Scoped tokens allow you to hardcode access to the HTTP interface (if enabled) and set more detailed control over what areas can be accessed plus no need to give the full http

Security_WebUIKey

You get set these tokens up by file or Environment Variables.

File

{
"ScopedTokens": [ "t:[10charcode],ws:core,ws:group", "t:[10charcode],cm:chat/localchathistory",
] }

Environment Variables
Name Value
ScopedToken1 "t:[10charcode],ws:core,ws:group"
ScopedToken2 "t:[10charcode],cg:chat"
ScopedToken3 "t:[10charcode],cm:chat/LocalChatHistory"

HTTP scoped tokens (info)


command [cm] "example: `cm:chat/LocalChatHistory`
    "a single command, formated as cm:[workspace]/[commandname]"

workspaces [ws] "example: ws: core, ws: group"
    "all commands under a workspace"

    "known workspaces"
    animation
    avatars
    chat
    core
    dialogs
    estate
    friends
    group
    home
    im
    info
    inventory
    movement
    notecard
    parcel
    self
    streamadmin
    +ALL

commandgroups [cg] "example: `cg:chat`"
    chat
        chat/IM
        chat/LocalChatHistory
        chat/Say
        group/Groupchat
        group/GetGroupList
        group/GroupchatListAllUnreadGroups
        im/getimchat
        im/chatwindows
        im/haveunreadims
        im/listwithunread

    giver
        inventory/SendItem
        inventory/SendFolder
        inventory/InventoryFolders
        inventory/InventoryContents

    movement
        movement/AutoPilot
        movement/AutoPilotStop
        movement/Fly
        movement/RequestTeleport
        movement/RotateTo
        movement/RotateToFace
        movement/RotateToFaceVector
        movement/SendTeleportLure
        movement/Teleport

BetterRelay system


This is to replace the old broken relay thats currently built into the bot

CustomRelay_1 = "encode-as-json::true,source-type::discord,source-filter::123451231235@12351312321,target-type::localchat,target-config::4"

CustomRelay_2 = "encode-as-json::false,source-type::discord,source-filter::123451231235@12351312321,target-type::localchat,target-config::4"

or via the config file customrelays

{ "CustomRelays": [ encode-as-json::false,source-type::discord,source-filter::123451231235@12351312321,target-type::chat,target-config::4 ] }

To config the relay please use the settings below.

source-type
    discord
	    source-filter: serverid@serverchannel

    localchat
	    source-filter: talker uuid or "all"

    avatarim
	    source-filter: avatar uuid or "all"

    objectim
	    source-filter: object uuid or "all"

    groupchat
	    source-filter: group uuid or "all"


target-type
    discord
	    target-config: serverid@serverchannel

    localchat
	    target-config: channel (default is 0)

    avatarchat
	    target-config: avatar uuid

    groupchat
	    target-config: group uuid

    http
        target-config: full url