-
-
Notifications
You must be signed in to change notification settings - Fork 449
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/trade manager #189
base: master
Are you sure you want to change the base?
Conversation
…going trade offers))
… exchange whispers
…on to clear item highlighting
…ple offers. Offers are now ordered descending. Offer expires after 60 seconds and are automatically dismissed
… top when focused
Thank you for interest in this feature. I always interested in different solutions and take best parts of each. While I can't merge your PR I'll take some notes from code. On a positive side you've learned APT code base, and can use your solution at least two weeks for sure, and even then my implementation will differ so you might want to continue using your version) |
Of course that was just a draft, to give some ideas, and I saw on your front page that you were planning to implement a fresh version of MercuryTrade/TradeCompanion/etc. or similar in the app, but I wasn't sure if that was in progress or not. So, considering i'm already a bit bored about the league 🤣, I decided to do some work on that to at least give some ideas. And who knows ? Maybe I'll like your version better then mine ¯_(ツ)_/¯ I'm glad if I helped you! |
And how could we get your version atm ? |
Fork my GitHub repo about awakened-poe-trade, then build the app locally on your computer for your OS (Windows / Linux). Keep in mind that this version isn't fully tested, so there might be some bugs remaining. And that you won't have the latest updates/fixes from SnosMe, if you don't merge his repo with my repo, before building. |
Well I'll check this (you speak a little bit chineese for me XD)
I'm on windows, you can't give me a link for a direct exe?
Le sam. 29 août 2020 à 16:54, nomis51 <[email protected]> a écrit :
… Of course that was just a draft, to give some ideas, and I saw on your
front page that you were planning to implement a fresh version of
MercuryTrade/TradeCompanion/etc. or similar in the app, but I wasn't sure
if that was in progress or not. So, considering i'm already a bit bored
about the league 🤣, I decided to do some work on that to at least give
some ideas.
And who knows ? Maybe I'll like your version better then mine ¯_(ツ)_/¯
I'm glad if I helped you!
And how could we get your version atm ?
Fork my GitHub repo about awakened-poe-trade, then build the app locally
on your computer for your OS (Windows / Linux).
Enjoy!
Keep in mind that this version isn't fully tested, so there might be some
bugs remaining. And that you won't have the latest updates/fixes from
SnosMe, if you don't merge his repo with my repo, before building.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#189 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQZH5VYZA5OFQYWGXYUSBJ3SDF2JRANCNFSM4PID3DYQ>
.
|
I'm glad you're interested in what I did, but unfortunately, I won't be able to provide any release/working version (exe, etc.) of my forked version simply because, I don't want to steal the work of SnosMe, in case many people read this PR and start using my forked version instead. And, if my version, that is not fully tested btw, start to bug and crash, unfortunately some people might think that it's SnosMe fault and may create issues on his repo, and I don't want that either. So, if someone wants to try my forked version while waiting for the official version of SnosMe, like I said, they can take a look and build my forked version on my repo by themselves. And, nowadays that's not a hard thing to do, even for people that are not really used to software development and those kind of stuff. Hope you understand. |
I understand and wait a bit to see it on official version. If it take too
much time I'll check how to try your fork.
Thanks for taking time to answer
Le dim. 30 août 2020 à 15:11, nomis51 <[email protected]> a écrit :
… I'm glad you're interested in what I did, but unfortunately, I won't be
able to provide any release/working version (exe, etc.) of my forked
version simply because, I don't want to steal the work of SnosMe, in case
many people read this PR and start using my forked version instead. And, if
my version, that is not fully tested btw, start to bug and crash,
unfortunately some people might think that it's SnosMe fault and may create
issues on his repo, and I don't want that either.
So, if someone wants to try my forked version while waiting for the
official version of SnosMe, like I said, they can take a look and build my
forked version on my repo by themselves. And, nowadays that's not a hard
thing to do, even for people that are not really used to software
development and those kind of stuff.
Hope you understand.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#189 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQZH5V7X64CF33BKP23Q4VDSDKW67ANCNFSM4PID3DYQ>
.
|
Be careful using this:
If I'm understanding how it functions correctly, it's considered automation, since you didn't directly trigger it yourself, and could potentially get you banned. |
This is fantastic. |
So it's been a lot longer than 2 weeks from SnosMe commented on Jul 26 when @SnosMe said he was going to implement his version. Are we going to get this added? |
@zombodotcom
Downside is that it's Windows-only, because it's built on .NET Framework and it's using severals Windows-only libs It's called Menagerie |
Awesome! I'll check it out. Doesn't seem like they are ever going to add this feature anyways |
Perhaps you didn't understand what SnosMe said the same way I did. He wasn't saying he would implement his own trade manager in 2 weeks. He was only stating that there would be no changes which broke nomis51's trade manager for 2 weeks. Definitely check out nomis51's C# version but I for one support SnosMe to add a trade manager when they get the chance. For cross-platform capability and 'one-less-app' simplicity. |
I want to explain how currently "yo dev, just implement trade manager" situation looks for me.
[1] - Not critical, can be emulated by guessing item from whisper (no 100% guarantee tho), yet nice to have feature.
There were a lot of changes made to this day (adaptation to new game data file format, my internal stat format changed, migrating to Vue3, supporting new league content, unexpected events like slow trade site and everyone says you should add caching because we like checking items in Rituals 😄 ). I have limited free time and feel like these things were more important, than adding trade manager that will have described issues (spending time on a feature that you know in advance doesn't always work). Sure it will be added (using the "CTRL+F by item name" variant, I really wish [3] was a thing), but I can't say when. 😄 |
I feel you. The reasons why I created Menagerie were directly linked to what you said here :
When I implemented the trade manager in APT, I faced so much issues, not due to the app structure, but due to the Electron way of doing certain things, like handling mouse/keyboard events in or out of visible screens. Just being able to interact with the trades on the overlay without actually blocking the user from interacting with the game was a challenge. It seems like Electron window is pretty opaque events-wise, it has only two states : I ignore all keyboard/mouse events OR I intercept everything, even if it's not on a visible part of the overlay. Which make this really hard to deal with (Reason why I chose WPF for Menagerie). Also, the item highlighting is definitely another difficult thing to do. I went the easy way with Menagerie (after failing a bit in APT), by using the Ctrl + F way along with some whispers interpretations/parsing. Using the overlay to highlight, is simply a nightmare to manage 😄, Getting the right width, height, position, size, etc. of the grid/items aswell as knowing if it's quad/normal tab, dealing with whispers that don't have position message, etc. is a real mess to manage. I tried to do it in APT, but I quickly realized that it was going to create more problems then anything else. I also hope [3] could be a thing, it would make this sooo much easier 😄 |
Huh. I was of the mindset that I could made a MVP trade manager for a single resolution in a couple days. Well, I support you not to add a trade manager to your application, then. Since I noticed you like to keep your code pure. (Pure code for the win. Many hands makes light work but also drop the ball and make a mess) |
74a9e49
to
daab537
Compare
Hi,
I've been working on a trade manager for the app in the last couple days. It has several core features :
Incoming trade offers
When you receive a trade offer whisper, it is diplayed onto the overlay just above the XP bar.
There are addtional informations in a tooltip when you mouse hover the item name of the offer.
The informations are :
Actions before you invite the player to your party
Whisper that you're
Busy
:Dismiss the offer :
Whisper that the item is
Sold
withCtrl + Click
on the offer :Whisper the player to ask him if he's
Still interested ?
in your item withCtrl + Shift + Click
on the offer :Highlight the related item in you stash (first select the relevant tab) with
Alt + Click
on the offer :Invite
the player to yourParty
with a simpleClick
on the offer :Actions after you've invited the player to your party
Re-invite
the player to yourParty
(Usefull if the buyer doesn't accept the request in time) :Dismiss the offer (this time it also
kick
the buyer out of your party) :You have access to the same commands
Ctrl + Click
,Ctrl + Shift + Click
andAlt + Click
at this point either.When the player join your hideout, a
User
icon on the offer.And, you can send a
Trade Request
to the player with a simpleClick
on the offer :Once the trade is
completed
, aThanks
whisper is automatically sent to the player and he'skicked
out of your partyOutgoing offers
Support whisper templates of www.pathofexile.com and poe.trade.
Simply click on the "Whisper" button available on the trade website.
The whisper is automatically sent to the related player in-game.
And the offer is displayed onto the overlay, on the right side of the screen.
You have severals informations available such as :
The offers are ordered by
time
and theyexpire
(removed from the overlay) after60 seconds
. The offer won't expire if you join the hideout of a player using theJoin hideout
action (Notice that the timer keeps running as reference). See below.Actions
You can
join the hideout
of the player (after you've joined his party) :You can send a
Trade Request
to the player :You can dismiss the offer :
Once the trade is
completed
, aThanks
whisper is automatically sent to the player.About the changes
The Trade Manager adds the
@types/lodash
(Debounce while reading the Client.txt file) and thefind-process
(To find the location of PoElogs
directory. Intended to work on all platform, but I've only tested Windows yet) dependencies.It has it's own subfolder in
/main/trade-manager/
and in/web/trade-manager/
.There are 4 new Vue components :
IncomingOffer
s and handles interaction with theMainProcess
)OutgoingOffer
s and handles interaction with theMainProcess
)Adds multiple new
Event
s in theMainProcess
bindings related to the Trade Manager.The Outgoing Offer part of the Trade Manager is using an updated version of your parckage
electron-overlay-window
referenced in this PR. It basically add aBringWindowToTop(hwnd)
command in thefocusTarget()
function. It's required to bring back PoE on top to be able to automatically send whisper when you click the "Whisper" button on the trade websites (See the Outgoing offers section). You may want to update your NPM repo or refactor this into two seperate functions, I don't know, but for now theelectron-overlay-window
package is referencing my forked versionAs of now, it only support english language. Needs to implement parsers for other languages.
I'm creating a draft for now, because, I need to test the trade manager a bit more while playing the game, but you can begin to take a look at my work if you want to. You may ran into lint errors 😆, I haven't ran the linter yet on the branch.