Giter VIP home page Giter VIP logo

ace's Introduction

Hello all,

I have some unfortunate news to share. I was approached by Riot back when I first released Ace, and we agreed to a call to discuss the future of Ace. During this call, which happened just a few hours ago, me and Riot agreed on some important points:

  • A third-party program running with full permissions that can automatically update is a tad bit unsafe.
  • All the features that Ace offers are either not really required (think of easy queue dodging, old IP/RP icons), or something that Riot might add later.
  • There is no viable way to prove that Ace will never be malicious or otherwise compromised.

Keeping these points in mind, we came to the shared agreement that Ace can not continue existing. Unfortunate as it is, Riot simply cannot give potentially unsafe code their blessing, and keeping the safety of their users in mind, they'd rather that Ace not exist at all. While developing Ace, I had considered all of these points, and thus this verdict was not unexpected for me. Ultimately, I feel like Riot is doing the responsible thing here by ensuring the safety of the majority, even if it means sacrificing Ace.

However, Ace did not go unnoticed. During the call, Riot acknowledged that many of the tweaks currently available do enhance usability, and that some of the tweaks will potentially go into the new client. To potentially accelerate this process, I have agreed to visit Riot HQ somewhere in the near future. While we don't yet know the exact details of the trip, I might end up working for Riot on the new client, which would mean that I can do what Ace did, but only officially.

What now?

As of right now, the following is going to happen:

  • I will push out a final update that disables all Ace plugins. If you are reading this from the changelog, it means that your Ace installation is now effectively the same as your normal installation.
  • I will remove all code from the Github repository, leaving the issues intact for future reference.
  • Riot will push out an update in 6.24 that will permanently disable Ace's method of injection, rendering it unworkable.

All of the 9319 users that ended up downloading either the Mac or Windows version of Ace, thank you from the bottom of my heart. You were all trusting (or dumb?) enough to install something that was made with the best intentions, but unfortunately had a little too much power.

So long and thanks for all of the fish,
- molenzwiebel.

P.S.
If you want to just enjoy the game that we all love, hit me up on League and we can play a game some time. I am available as Yahoo Answers on EUW.

ace's People

Contributors

molenzwiebel 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ace's Issues

In-Queue Mastery Page Doesn't Resize With Client

When the client is resized, the edit mastery page in-queue doesn't currently resize with it. This happens both scaling up and down. I've been resizing to normal size to edit and going back down, but thought I'd speak up about this issue.

Find a better way to edit templates

Relevant comments in template-content.ts: https://github.com/ace-lol/Ace/blob/master/src/hook-providers/template-content.ts#L10-L13.

Currently, we wrap HTMLTemplateElement.content and give plugins the opportunity to do their initialization/changes there. However, the scope of the hook is fairly big, even if plugins behave and unregister their hook after applying their changes. Ideally, I would like to edit the HTML after insertion, but that gives a whole other range of problems/things to consider.

HookManager is fairly useless

Currently, HookManager serves as a fairly useless collection of hooks. The hook function does some basic analysis of duplicate hooking, but ideally I would like it to be a lot more useful. For that, at least the following things need to happen:

  • Fix the equality check in areParamsEqual.
  • Figure out if we want to disallow duplicate hooks, or if we just want to warn about them.
  • Find a better way to relay the warnings to the developer/user.

Louder

I can not hear the notification sounds for game invites and chat messages!!

Chat improvements

Potential changes:

  • Enabling the popout mode that is implemented but not turned on.
  • Allowing people to resize the chat window.
  • Integrating discord/slack-like emoji.
  • Adding discord/slack-like unfurling.

Most of these seem fairly straightforward.

[Documentation] Basic Plugin Documentation

As far as I can tell, there is no simple example plugin (e.g. hello world), nor a list of available APIs to hook.

If this could be provided, there are a few things I personally would like to add as plugins if I could do it quickly.

If an exhaustive list of APIs is too large an undertaking, a short wiki-like page on how to find them would be nice too. I just dont know where to start my reverse engineering,

Better matching mechanism in ember-component

Currently, the ember-component.ts hook is matching on the classNames property, which is fairly abundant on most Riot components. However, it is not a perfect matching mechanism. In the best situation one could provide a callback for validation, however this gives a fairly large performance penalty (given how much components are internally registered/used).

Unable to use ace

when I try to launch ace, I get a popup telling me that access has been denied.
Can you tell me how to fix this

the popup :
ace bug

thanks for the help.

Champ select improvements

Improvements could include:

  • Custom champion filters (like the current role-based ones). (#13)
  • Sorting on mastery.
  • Displaying chest received/champion mastery on champion icons.
  • Tooltips with general information about the champion (like the collections screen).

If possible:

  • Changing skin early (instead of when everyone has locked in).
  • Random skin (idea shamelessly stolen from LES).

Client does not scale during resizing

Can either be done with transform: scale(x) on the body element and moving it accordingly, or by POSTing to /lol-settings/v1/local/video which is a lot cleaner/better quality but not instant (hides, then shows window, resets it back to middle). Best option would be to apply scale during resizing, then saving the scale with the POST on mouseup.

Accept queue with enter

Seems to be as easy as attaching some listeners to rcp-fe-lol-ready-check and simulating the button press. Testing it is a pain though...

On a side note, might be interesting to consider what to do when someone is in the chat window when they press enter (although to be honest, 99% of the time you are in queue because you want to play).

Remember me

Something alike to Google's old account picker:
chrome-beta-37-account-picker

Would allow for easier logins, but needs a reliable/secure way to store data on the computer.

Client reopens with Ace closed

The latest update made Ace stop working completely. Not sure if it was the Ace update or the League update (that brought soloq).

Every time I load the client through ace, it reloads with ace closed. No error message or any thing.

Type-safe HookManager

I need to take a look if TypeScript offers a convenient way to add type-safe hooks, but otherwise we will probably need overloads taking a string literal as type and delegating them to the hook, like this:

// Current code, renamed to _hook but stays unchanged.
_hook(plugin: Plugin, hookName: string, callback: Callback, ...matchers: any[]) {}

// More specific overloads per hook.
hook(plugin: Plugin, hookName: "http", callback: Callback, matcher: RegExp | string) {
    this._hook(plugin, hookName, callback, matcher);
}

// etc...
hook(plugin: Plugin, hookName: "ember-component", callback: Callback, matcher: string) {
    this._hook(plugin, hookName, callback, matcher);
}

Go to skins tab from skin collection

Currently clicking on a skin in the Skins collection tab simply opens the champion page because there is no way to select a specific page/skin. Might need to inject into rcp-fe-lol-champion-details for that.

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.