Coder Social home page Coder Social logo

advisor's Introduction

Hi there ๐Ÿ‘‹

You can find more information about me, and my blog, here!

advisor's People

Contributors

erlite avatar guthen avatar pilot22 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

Watchers

 avatar  avatar  avatar  avatar

Forkers

guthen lexa013

advisor's Issues

Add font scaling client convar (50% -> 200% font size slider)

  • Add a advisor_text_scale convar, takes a number between 0.5 and 2
  • Create a Advisor.NumSlider UI element with the same style as the others. Derives from DNumSlider
  • Create the Settings menu page. For now, only add the text scale setting.
  • Call the font update function in cl_fonts when the value is changed.

This will allow users to scale the font according to their screen's pixel density. Resolution scaling alone won't give us a "perfect" result.

Implement a simple version check (client & server)

Versioning should follow the basic Major.Minor.Hotfix scheme.
Fetch a text file containing the current version from this repository's root. Name it version.txt

The check should be done on both server and client. Clients will only perform the check on InitPostEntity.

Run a hook once we have retrieved the latest version and store it somewhere (maybe a file in the framework module).
Name the hook Advisor.OnVersionRetrieved, pass the current and latest versions.

Version should be displayed in the menu's home page, with a warning if it's out of date.

Font sizes need to be responsive

Module: ui
File: cl_fonts.lua

Font sizes need to be set based on the current screen resolution. Hook GM:OnScreenSizeChanged() to also re-create them if the player changes their window's size.

All responsive code needs to base itself on a default of 2560 x 1440.

Add an argument parser for duration

This will be required for things like timed bans and votes.

Examples:

!ban 60 User - Bans "User" for 60 minutes
!ban 1mo2w User - Bans "User for a month and two weeks".

Should be able to parse years, months, weeks, days, hours, minutes and seconds using short suffixes.
The parsed argument should be passed in the command as a number in seconds.

Advisor: UI needs to be responsive.

Module: ui

Most of the current UI for Advisor isn't entirely responsive. Some elements do use the screen's resolution, but the others also need to be implemented.

Advisor: menu should only be created once, and then hid/unhid.

Right now, there's no real performance concern since we're not doing any heavy processing of info, nor receiving anything from the server to populate tabs. However that may be the case in the future. To alleviate this, we'll need to implement the following:

  • Only create the menu the first time it is opened.
  • Hide/unhide it afterwards.
  • A hook that is called when permissions have updated (allowing options to hide/unhide themselves).

Optional commands arguments are not working for Console Commands

Module : framework/commandhandler

When running the command from the console, defaults value from Optional Arguments are not passed in the Command Callback. Instead the parser of the argument is executed. However, this is working when running the command from chat.

Consider this example :
image
image

Advisor: Implement the menu for Advisor's basic planned features.

This issue is a bit late, but I'll update it as progress goes.

  • Basic window system
  • Work can be made to improve it further, but it's good enough for now.
  • Landing Page: Home
  • Display Advisor's current version and check for updates (perhaps a simple txt file in this repository would work)
  • Display buttons that link to the Discord, GitHub repo, and documentation once we have that (disable if they're not present for now).
  • Landing Page: My Profile
  • Profile system has yet to be implemented, although the advisor_users table has been started.
  • Display basic information about yourself (avatar, username, steamid, server join date, infractions)
  • Landing Page: Settings
  • Clientside settings such as Advisor's language. Add more as needed.
  • Administration: Usergroups
  • Permissions system needs to be fully implemented first. We'll go with what Source does with usergroups, since that's the most supported way for Garry's Mod (including CAMI).
  • Administration: Users
  • List all known users to have been on the server.
  • Ability to add/list/edit/remove infractions to/of users (notes, warns, kick if connected, mute, bans)
  • Ability to create/edit/delete usergroups. Some usergroups should be impossible to delete (user for example).
  • Administration: Audit Log
  • Put on hold for now, but it'll contain all of the logging data done by Advisor.
  • Administration: Bans
  • A ban system needs to be implemented, likely along with the infractions system.
  • Display current bans, reasons, durations, with the ability to add/edit/remove bans.
  • Administration: Server Settings
  • Allows the user to modify server settings. Mostly Advisor configuration like command prefix, serverside language, and perhaps add some utilities like MOTD, scheduled messages, Discord integration and more. This can be moved to its own category to keep it clean.
  • Misc: Credits
  • Done, update as you see fit. Maybe make it a little bit cleaner.

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.