Giter VIP home page Giter VIP logo

ecodiscordplugin's Introduction

DiscordLink Logo

DiscordLink

Introduction

This Eco Global Survival plugin connects Discord servers to the game server.

Features

  • Seamless communication
    Connect your Eco chat to one or multiple Discord servers and channels for seamless and automated communication between Eco and Discord.
  • Discord Displays
    See live updated information on Server Status, Elections, Work parties, Store Contents and more in Discord.
    For a full list of all supported display modules, see the display module list.
  • Discord Feeds
    See feeds of ingame events such as Trades and Crafts in Discord.
    For a full list of all supported feed modules, see the feed module list.
  • Discord Inputs
    Add predefined messages in Discord and invoke them ingame using the /Snippet command.
    For a full list of all supported input modules, see the input module list.
  • Discord Roles
    Automatically assign roles to users based on their ingame specializations, demograhics and elected titles.
    For a full list of all supported role modules, see the role module list.
  • Troubleshooting Tools
    DiscordLink comes with troubleshooting commands that you can use both in Eco and in Discord, to help diagnose configuration errors.
  • Helpful Commands
    DiscordLink features a number of helpful commands both from within the game and from Discord.
    Here's the full command list and below is a sneak peek on some of the more prominent ones!
    • /EcoCommand - Execute any ingame Eco command straight from Discord! Don't worry, only you and your admins get access to the privileged commands :)
    • /Trades - The DiscordLink Trades command will help you find where you can buy and sell everything you need to run your profession! Search by item, tag, player or store name!
    • /Snippet - Post a prepared text snippet in Discord, straight into Eco! Tired of answering the same questions over and over? Make a snippet!

Usage

Eco <--> Discord Chat Synchronization

In order to synchronize the ingame chat with a Discord channel, you will need to set up a Discord bot and connect it to your Eco server via the DiscordLink config. See installation guide for information on how to do this.

Modules

DiscordLink offers a variety of modules that can show information and allow interaction with the game from Discord, such as player lists, election voting, existing laws and currencies. See the Modules Feature List for more information.

Commands

See the command list for available commands and how to use them.

Installation

See the installation guide.

Configuration

Server GUI

See this configuration guide for self hosted servers with access to the server GUI.

Config file

See this configuration guide for servers hosted by third parties, where you lack access to the server GUI.

Discord

Do you have suggestions, questions or maybe a problem you need help with? Join the Eco Community Discord server! DiscordLink has a channel under the Mighty Moose Mods section where you can get in touch with the maintainer!

I want to contribute!

Pull requests are very welcome! For information on how to set up the development environment, see the project setup guide.

History & Credits

Maintainers

Spoffy - Original author of the plugin and maintainer 2018 -> 2020.
MonzUn - Maintainer 2020 -> Present.

Additional Contributors

Phlo - DiscordLink logo.
demodude4u - Original author of the Discord ?trades command.
bozoweed - Eco 8.0 update compatibility.
Lord-Helmchen - Fixed support for multiple chat links.
R3sist3nt - Fixed an issue related to handling missing permissions and added GUI support for selecting channels.
StalEF - Updateded the DiscordLink logo for Eco 10.0.




DiscordLink Logo © 2018 Phlo

ecodiscordplugin's People

Contributors

bozoweed avatar clayc90 avatar darkmukke avatar julianma avatar monzun avatar spoffy avatar thekye avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ecodiscordplugin's Issues

Add option for syncing Discord Roles and Eco Specialications

Original author (dopeghoti) comment
"If there's any way we can link a person in Discord to a player profile on the Eco server, it's would be really cool to be able to have, say, a @lumberjack role in Discord that automatically gets assigned to anyone on the server who gets Logging as a specialization. Is this within the realm of possibility?"

Add: search by tag

/dl-trade furniture

improvement: separate the sales from buy
/dl-trade-sell furniture
/dl-trade-buy furniture

godlike: add custom tag
/dl-trade-sell furnitureT3

Add vote display

Being able to see the status of ongoing votes in EcoStatus would make votes more visible and hopefully make more players participate in voting.

Add Ongoing Crafting Tracking Display

Just an idea I had, you may have already thought of it. What if crafting logs were instead embedded messages that could show things like:

  • The workstation/machines name (the custom one you can give it)
  • Who started the job (If they've linke their in game name with their discord account maybe it could ping them?)
  • Work Order ID
  • How many resources were requested
  • How many materials will be used
  • The jobs status i.e.. "needs labor", "needs materials", "no storage" (if it can't output to nearby storage), "Processing", "completed", "needs power",
  • "Time remaining xx:xx" (could probably update the time remaining every 30 - 60 seconds to avoid discords api limits) / "finished" when it's completed
  • How many other jobs are queued on that machine/workstation
  • have a config option to show either an icon of what the product being made is, or an icon of the machine/workstation the job is running in

I realize that there are servers out there where people are just constantly crafting and having the bot try and update embeds and keep track of all those jobs could potentially cause it to hit discords api limit (idk technicals but I know discord introduced limits to how often bots can update channel descriptions so I'd imagine its the same for embeds now?). But being able to que up some large jobs and be able to log off and just keep an eye on discord for when jobs finish or need more materials would be awesome in my opinion. Nothing worse than logging off after queuing some jobs to join back the next day and realize it didn't finish because you forgot to do the labor or your storage filled up. Maybe if a work order changes state from processing to "needs materials" or "no storage" etc the embed could ping the player?

I made a mock up embed something how I'd imagine it looking
Capture

[2.1.1] Server hanging & Player Disconnecting

So it seems that the DiscordLink is slowing my server down and even causing people to disconnect due to the following error/warnings pictured

Another issue I've noticed, is the bot will randomly just stop working either all together or just from discord side (Meaning it'll pass eco stuff to discord, but not discord messages to eco).

Is there something that I have setup or configured wrong?

If you need more information please let me know what I can do to help.
I've attached the pluginlog as well.

Eco Server version 9.2.4

DiscordLinkErrors
Pluginlog.txt

Loggfiles does not been stored in the correct folder

On linux servers the logfiles is stored under the name 'ecoserver\Mods\DiscordLink\Pluginlog.txt'
Not as Pluginlog.txt in the folder "ecoserver\Mods\DiscordLink"

Linux is using \ as an escape char and not folder, need to use / to define folders

Add moderator report feature

User would then be able to send reports to a moderator-only chat on Discord using a command.
This could also be used for other things like account connection validation in case moderators need to be involved.

Add Discord based server whitelisting

  • User runs discord command with ID -> Verified based on trust
  • User runs discord command with ID -> Sent to mod queue to be added manually
  • User runs discord command -> User gets link in PM from bot -> Lookup for a Discord connected Steam account is made.

ECO MOD (discord mod)

I can see you have displayed instructions on how to do this if you have the server on your computer. I'm using GTX gaming and I pay them how would I go about doing it there?

Also, could anyone tell me where do I input the code to make chat colour different for mods?

I'm sorry if I seem a bit of a boomer I'm just new to all this sort of stuff so thanks in advance anyone :-)

Add economy display

Being able to see how much currency is in circulation and other economy related things would add the the utility of the plugin.

Error when using version 2.2.0 on Eco server 0.9.2.4

Could not load file or assembly 'DSharpPlus.CommandsNext, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at Eco.ModKit.ModKitPlugin.LoadModDlls()
   at Eco.ModKit.ModKitPlugin.LoadModsData(TaskCompletionSource`1 done)
   at Eco.ModKit.ModKitPlugin..ctor(TaskCompletionSource`1 done)
System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus.CommandsNext, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus.CommandsNext, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


System.IO.FileLoadException: Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
File name: 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'
 ---> System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Eco.ModKit.ModKitPlugin.AppDomain_AssemblyResolve(Object sender, ResolveEventArgs args)
   at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
   at System.Runtime.Loader.AssemblyLoadContext.OnAssemblyResolve(RuntimeAssembly assembly, String assemblyFullName)


Outer Exceptions:
Exception has been thrown by the target of an invocation.
 
[02:11:57.583] [1] [Error] [Eco] Unhandled errorSystem.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at Eco.Server.PluginManager.AddPlugin(Type pluginType, Object[] p)
   at Eco.Server.PluginManager.AddPlugin[T](Object[] p)
   at Eco.Server.PluginManager.AddPluginsAsync(StartupInfo startupInfo)
   at Eco.Server.PluginManager.PostCreateAsync(StartupInfo startupInfo)
   at Eco.Server.Startup.StartAsync(StartupInfo startupInfo)
   at Eco.Server.ApplicationHostedService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at Eco.Server.MainClass.Main(String[] args)
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load file or assembly 'DSharpPlus.CommandsNext, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
Could not load file or assembly 'DSharpPlus, Version=4.0.0.711, Culture=neutral, PublicKeyToken=null'. An operation is not legal in the current state. (0x80131509)
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at Eco.ModKit.ModKitPlugin.LoadModDlls()
   at Eco.ModKit.ModKitPlugin.LoadModsData(TaskCompletionSource`1 done)
   at Eco.ModKit.ModKitPlugin..ctor(TaskCompletionSource`1 done)```

Connection Failed

Connection attempt failed, retrying in 60s
System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.WebSockets.Client, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
File name: 'System.Net.WebSockets.Client, Version=4.1.2.0, Culture=neutral

This is what I'm getting upon startup after following the guide. Any ideas?

bug wont save nor display address

i have disabled meteor on the server as well discordlink setting but it not disabled as i see still seeing count down time and server address wont display.

"DiscordCommandPrefix": "?", "EcoStatusDiscordChannels": [ { "DiscordGuild": "Andsim-Gaming-tv", "DiscordChannel": "eco-status", "UseName": true, "UseDescription": false, "UseLogo": true, "UseAddress": true, "UsePlayerCount": true, "UsePlayerList": true, "UseTimeSinceStart": true, "UseTimeRemaining": false, "UseMeteorHasHit": false } ], "ServerName": "Andsim Eco Gaming", "ServerDescription": "The place to play Eco!", "ServerIP": "ecoserver.andsimgaming.ca:3000", "ServerLogo": "http://github.com/Spoffy/EcoDiscordPlugin/raw/master/images/DiscordLinkLogo_Nameless.png", "ChatChannelLinks": [ { "DiscordGuild": "Andsim-Gaming-tv", "DiscordChannel": "eco", "EcoChannel": "General", "AllowUserMentions": true, "AllowRoleMentions": true, "AllowChannelMentions": true }, ], "Debug": false, "LogChat": false, "ChatlogPath": "../Chatlog.txt", "EcoCommandChannel": "general", "InviteMessage": "Join us on Discord!\n[LINK]" }
i left out bottoken
here picture
image

using discord ID's

Is there away to edit the code just using Discord ID's. i have emoji's in my channel names that wont load in the text file. Anyway around this?

Enable voting from Discord

If players could read votes and respond to them via Discord, more players would likely interact with the voting system and participate in politics.

Add a store watcher

A user would be able to command DiscordLink to send a DM to them on Discord in case their store runs out of a specified item or currency.

Feature Request: Currency report command

Currency Report:

?dl-currency "Dollars"

Example
Currency is Dollars

Total Currency: Dollars, $100,000
User1, Dollars, $100
User2, Dollars, $55.24
Treasury, $Dollars, $80,000

?dl-richest "Dollars"

Example
Currency is Dollars

Total Currency: Dollars, $100,000
Treasury, $Dollars, $80,000
User1, Dollars, $100
User2, Dollars, $55.24

Add console text coloring

em-framework added functionality to easily color the text in the console output.

This could be utilized to increase readability of the console output.

Feature Request: User Stats Command

Would like the DiscordBot to be able to pull a report on user stats

?dl-userstats (Everyone)

Everyone or

?dl-userstats "EcoUser1"

Example:
Username: Ecouser1
Skills:
Smiting: Level 3
Campfire Cooking: Level 4
Player Level:
Star Level: Level 4

Add event notifications for server starting/stopping

Add in event notifications for when the server starts up and for when it shuts down to let people know on Discord if the server is online.

For example, the Discord plugin for Space Engineers uses the following:

  <Started>:white_check_mark: Server Started!</Started>
  <Stopped>:x: Server Stopped!</Stopped>

Feature Request: Server Shutdown through Discord

  • Discordbot would receive a command through discord from an authorized role that would trigger the eco server to shutdown.
    • Server - depending on the command would immediately save and shut down or send an in-game message/announcement that the server will reboot/shut down in x minutes.

Would be helpful for minor updates that don't break everything if you are on the road to trigger a reboot which would then let the server update.

Add Activity String

Display player count, time left, or similar information in the bot users rich presence string.

Admin roles config does not accepts IDs

Hello developers
Would like to have it be able to use ID's as well, cause everything ells does use id's. cause case sensitive is good but easy to break too.
Kind regards
MrWhiteFlamesYT

DiscordLink is incompatible with Eco 9.3.x

Hey,
i setted everything up correctly and I always get Errors thrown by the Plugin:

[06:49:20] [DiscordLink] Plugin version is 2.2.1
[2021-04-22 06:49:21 +02:00] [102 /ConnectionFa] [Error] Connection attempt failed, retrying in 7s
System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.WebSockets.Client, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

File name: 'System.Net.WebSockets.Client, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at DSharpPlus.Net.WebSocket.WebSocketClient.ConnectAsync(Uri uri)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at DSharpPlus.Net.WebSocket.WebSocketClient.ConnectAsync(Uri uri)
   at DSharpPlus.DiscordClient.InternalConnectAsync()
   at DSharpPlus.DiscordClient.ConnectAsync(DiscordActivity activity, Nullable`1 status, Nullable`1 idlesince)

I think I'm missing a depency but couldn't find one. Might be dotNet feature?
Is there a workaround for linux mashines?

Kind regards,
Kez

Crash in work party display data fetching

Oddly after a reboot i'm always getting this as a failure with the DiscordLink, had to remove the mod from the modfolder to keep the server going.

--BEGIN DUMP--
Dump Time
04/02/2021 18:16:22

Exception
Exception: NullReferenceException
Message:Object reference not set to an instance of an object.
Source:DiscordLink

System.NullReferenceException: Object reference not set to an instance of an object.
at Eco.Plugins.DiscordLink.Modules.WorkPartyDisplay.GetDisplayContent(DiscordTarget target, List`1& tagAndContent)
at Eco.Plugins.DiscordLink.Modules.Display.UpdateInternal(DiscordLink plugin, DLEventType trigger, Object data)
at Eco.Plugins.DiscordLink.Modules.Module.Update(DiscordLink plugin, DLEventType trigger, Object data)
at Eco.Plugins.DiscordLink.DiscordLink.<>c__DisplayClass57_0.<b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.Tasks.Task.<>c.b__139_1(Object state)
at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute()
at System.Threading.ThreadPoolWorkQueue.Dispatch()

--END DUMP--

Issue with /dl-link Discord Account - Unauthorized

Hello,
I have the below issue with the /dl-link command. In Server Log you can see the following issue. The bot seems to not have enough permission to do so. I have given him Admin permissions on Discord but he still gets this error. Please can you help, what needs to be set up or is it a bug which needs to be fixed.
Thanks.

[10:32:39] [DiscordLink] ERROR: Error occured when attempting to fetch all guild members. Error message: DSharpPlus.Exceptions.UnauthorizedException: Unauthorized: 403 at DSharpPlus.Net.DiscordApiClient.ListGuildMembersAsync(UInt64 guild_id, Nullable1 limit, Nullable1 after) at DSharpPlus.Entities.DiscordGuild.GetAllMembersAsync() at Eco.Plugins.DiscordLink.Utilities.DiscordUtil.GetGuildMembersAsync(DiscordGuild guild)

Add feed for the beginning/end of elections

As a more on-demand alternative to having the elections be a part of the display module, you could have it so a message is sent into a Discord channel whenever a new election is started, and another message when the election is over that lists the results (if it passed or failed).

I believe this should also be able to tie into the planned feature (#7) of allowing users to vote in elections through Discord using emotes, due to it's semi-static nature.

Compared to being a constant update ticker as a display, the intent of having it as a feed would be to act as more like a record/notification of elections. Once the bot would post a message there wouldn't need to be any other action taken by the bot/mod, except maybe for editing the election start message to note the election is now over and/or link to the election ended message.

Add mod message queue feature

If players could send reports that could only be read by moderators via an ingame command; it would help organize moderation work and make more players likely to ask for help from moderators.

EcoStatus Channel not working

Opened by @jcbjoe

"Hello,

I cannot seem to get the eco status working. Does the server need restarting once the details have been added to make this active?
The channel is verified in the logs and seems to be connected correctly. It has the needed permissions of manage messages and read chat history.

I'm under the impression once this is linked it will automatically add a message it and edit it? Is there something I'm missing

Thanks,
Joe"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.