Git Product home page Git Product logo

esm_bot's Introduction

esm logo

ruby version ruby version

Exile Server Manager (ESM) is a Discord Bot that interfaces with Exile servers via an Arma 3 server side mod. ESM provides commands and functionality for both players and admins.

Table of Contents

Links

Suggestions

ESM was and still is built for the Exile community with a majority of ESM's features started out as suggestions. If you would like to make a suggestion, please join our Discord and post it in the #suggestions channel.

Developing

You will need the following:

  • Linux
  • Docker (and Compose) installed
  • A Discord app setup as a bot
  • Experience with Ruby, Discordrb, ActiveSupport/ActiveRecord, RSpec, PostgreSQL, and Redis

Setup

  1. Clone the repository
  2. Duplicate .env.example, rename it to .env, and fill out the values for the variables
  3. Start the databases: docker compose up -d postgres-db redis-db
  4. Install Ruby (I recommend asdf and asdf-ruby)
  5. Install bundler: gem install bundler
  6. Set up the database: bin/setup
  7. Start the bot: bin/dev

License

Creative Commons License

Exile Server Manager work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

esm_bot's People

Contributors

itsthedevman avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

esm_bot's Issues

Cleanup request cycle for !add

The request cycle for adding a player to a territory sends a bunch of messages to the requesting user. This is a bit overwhelming

Playermode check can be bypassed

Scenario
Run an admin command for another community while your community is in player mode. The command will execute.

https://github.com/WolfkillArcadia/esm_bot/blob/03f742bc2abde7546416503f65e56079240c5787/lib/esm/command/base/checks.rb#L231-L234

The culprits are the above lines of code. Since the command is technically being ran for another community, it early exits, without checking for @command.type == :admin.

Possible fix is to add && @command.type != :admin to end of L231.

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.