Skip to content

trumpetx/ChatLootBidder

Repository files navigation

Tests Coverage

Overview and Goals

This addon's primary goal is to manage the process of bidding and rolling on items in a Master Looter environment in a semi-automated way. This addon is for Master Looters. If you are a bidder/raider, you should check out the NotChatLootBidder addon.

Goals:

  • No addons are required for Raiders
  • A Master Looter can start a loot session on one or more items and concurrently receive bids on everything
  • Raiders submit their bidding intention secretly by whispering the Master Looter
  • Once complete, all winners are announced
  • Compatible with a 1.12.1 / Turtle client

Items that are not goals:

  • Keeping track of a Raider's "points" (Doing this probably means you want to use an entirely different addon)
  • Making sure that a Raider has enough "points" to win after bidding (goes with the above)
  • Automatically starting or ending a session
  • Automatically distributing loot

Directions and Setup

Info / Help

  • /loot help to see a summary of commands along with information about the addon

Addon Setup

Most configuration should be set to a reasonable default

  • /loot Show the GUI options menu image

  • Custom Channels (unable to set in GUI)

    • /loot bid CustomChannel Set the "Bid Channel" to the custom channel "CustomChannel"
    • /loot session CustomChannel Sets the "Session Announce Channel" to the custom channel "CustomChannel"
    • /loot win CustomChannel Sets the "Winner Announce Channel" to the custom channel "CustomChannel"
  • /loot debug 2 Sets the debug level to 2 which is VERY SPAMMY. 1 is slightly less spammy than 2. This should not be necessary unless you're trying to debug the addon behavior. 0 is the default and returns the addon to non-spam-you mode.

Raid Usage

Enabling Auto-Stage will render these chat commands unnecessary; however, they are still useful for testing.

  • /loot stage [item-link][item-link] stage items for a session start. This can be used to add items before officially starting the session (to bundle multiple boss loot, for example).
  • /loot start [item-link][item-link][item-link][item-link] to start a new loot session with the declared items (along with any staged items). Directions and item links will be listed to the "Session Channel".
    • /loot start [item-link] 120 starts a session with a custom timer length of 120 seconds
    • The timer is just a suggestion, the Master Looter still needs to run /loot end to end the session.
    • While you don't technically need to be a Raid assistant to be a Master Looter, you must be one to use the addon.
    • You do not have to be the actual designated Master Looter in order to run the addon (e.g. separate the bid taker from the loot distibutor)
  • /loot clear to clear the current bidding session or stage. This clears all items, rolls, and bids completely. It is not reversable: BE CAREFUL.
  • /loot clear [item-link] to clear specific item(s) from the stage. This can be reversed by /loot stage [item-link] and does not apply to sessions at all.
  • /loot summary if a current session is active, post the current summary to the "Bid Channel"
  • /loot end to end the current loot session. Winners will be announced to the "Win Channel". If enabled, a summary will be posted to the "Bid Channel".

Raiders bid after a session has been started:

  • /w Masterlooter [item-link] ms 100 to bid 100 points at the Main-Spec tier of bidding
  • /w Masterlooter [item-link] os 10 to bid 10 points at the Off-Spec tier of bidding
  • /w Masterlooter [item-link] roll to declare that you would like to roll for this item
    • Once declared, you can then /random yourself to have your roll linked to your roll bid. If you have multiple roll bids, your rolls are assigned in a non-deterministic order. If you want to control the order of your rolls, bid first, then roll, bid second, then roll.
    • If you choose not to roll yourself, the addon will do a math.random(1, 100) on your behalf. The only reason to roll yourself is if you (A) don't trust the Master Looter or (B) believe that your dice are better than other dice.
    • SPECIAL CASE - ONE ITEM ONLY: You may simply /random to have your roll applied to that item without /w Masterlooter roll first (since it's unambiguous which item you're rolling on)

Note: You can prepend the note with 'hints' to modify behavior, semicolons are optional:

  • ALT; - Marks the bid as coming from an alt character (applies alt penalty in DKP mode or simply informational to the Masterlooter)
    • /w Masterlooter [item-link] ms 100 alt; gimmeh!
    • /w Masterlooter [item-link] ms 100 gimmeh! alt;
  • NR; - No Reply flag - suppresses the confirmation message when your bid is received
    • /w Masterlooter [item-link] ms 100 nr; alt; bis!
    • /w Masterlooter [item-link] ms 100 alt nr bis!

Raiders can cancel bids:

  • /w Masterlooter [item-link] cancel to cancel an existing bids (MS/OS/roll)
    • note: a roll is saved until the Loot Session is ended in case you re-roll on a given item
    • You can use this to change the "tier" of a bid from MS to OS, etc
    • If there are some roll bids where users did not roll on their own behalf, their rolls will be generated and posted to the "Session Channel" (if enabled) or whispered to them (if disabled)

Soft Reserve Usage

Raid Leader

Soft Reserves are like an extra meta-session on top of /loot msos mode. The Master Looter can load a Soft Reserve list by executing the command: /loot sr load which takes an optional parameter of the list name. For example, /loot sr load bwl will load the "bwl" list (to allow SRs to persist week to week if desired). Not providing a list name will simply use today's date in the format YY-MM-DD for the list name.

Once the Soft Reserve list is loaded, you can perform the following actions (these also have GUI buttons in /loot)

  • /loot sr show - list out (to the "Session Channel") all current Soft Reserve bids (non-raid members are not listed)
  • /loot sr instructions - Spam basic Soft Reserve instructions to the "Session Channel"
  • /loot sr lock - Lock the current Soft Reserve list
  • /loot sr unlock - Unock the current Soft Reserve list
  • /loot sr delete - Delete the currently loaded Soft Reserve list or /loot sr delete list-name to delete the 'list-name' list.
  • /loot sr unload - Unload the current list and turn off Soft Reserve functionality.
  • /loot sr json - Suspend Soft Reserve functionality and manually edit the loaded list in raw JSON format. Use this mode for mass importing/exporting Soft Reserves from other tools.
  • /loot sr semicolon - Suspend Soft Reserve functionality and manually edit the loaded list in raw semicolon-separated format. Use this mode for mass importing/exporting Soft Reserves from other tools.
  • /loot sr csv - Suspend Soft Reserve functionality and manually edit the loaded list in csv format. Use this mode for mass importing/exporting Soft Reserves from other tools.
  • /loot sr raidresfly - Suspend Soft Reserve functionality and manually edit the loaded list in RaidRes.Fly format. There is no website import, but you can use the website export to import to this addon.

Raiders (getting your SR bids in)

Whisper the Master Looter in the following format: /w Masterlooter sr [item-link]. If it is successful, a reply will be sent to you. If you do not have the item to link, you may use plain text, but beware plain text bids must be EXACT. If you use item links, and the Master Looter has configured more than 1 SR, you can send them in at the same time: /w Master looter sr [item-link-1][item-link-2]. If using plain-text bidding, only send 1 Soft Reserve bid at a time.

Known Issues / FAQ

  • Looting a boss twice will load the items to the stage twice if a session was not started.

Changelog

  • 1.11.2
    • Fixing /loot sr unload crash (called undefined global instead of frame method)
    • Fixing SR item name autocorrect whisper not being sent to the bidder
    • Fixing CSV import crash when player names contain leading/trailing whitespace
    • Fixing auto-generated rolls not being whispered to players when Roll Announce is disabled
  • 1.11.1
    • Fixing a bug where the display doesn't announce properly when there is an OS + roll winner on a duplicate item drop
  • 1.11.0
    • Adding support for duplciate item drops (top X bidders/rollers win)
  • 1.10.1
    • Adding support for nr - a "No Reply" flag in the note (text past the bid tier/amount) to tell the addon to NOT reply to the user when the bid is placed (lowers spam, but requires trust in the ML) - 100% optional
    • Adding support for the flags to be sent in any order, semicolon separators are optional:
      • alt nr flag1 flag2 My Message!, nr; flag2 alt; flag1 My Message!
      • flags (like alt) must now be placed in the beginning of the message and no longer are parsed from other spots in the message (e.g. My Message! alt is no longer okay to get the alt flag set)
  • 1.10.0
    • Refactored ChatThrottleLib to use configurable line buffer (increased from 5 to 10 lines)
      • This should hopefully remove the ChatThrottleLib.lua:147:attempt to index field 'list' (a nil value) spam error
      • More testing is necessary to figure out how and why this happens, but it may be a race condition related to multiple chat sends of different types (outputting many lines to /o /1 /ra /rw and getting chat banned)
    • Fixed a bug where rolls were announced with MS/OS winners
    • Changed the way rolls are announced, putting more than one roll (sorted high to low) on a single line to lower chat spam and turtle chat bans. Similar to the change in 1.9.1, no roll is announced if there is a single roller (since it will be announced at win time).
    • Added player class color support (configurable option in GUI) without requiring pfUI
      • note: disabling this option will allow more rollers to appear on a single line due to 1.12.1 chat line length limits (coloring a player adds 25 hidden characters to a player's name with a total line limit of 255)
    • Refactoring code to allow NotChatLootBidder to operate on 3.3.5a clients (.toc update notwithstanding)
  • 1.9.1
    • Always calculate a roll for someone (no more -1's in the logs)
    • Do not announce rolls if there was only 1 roller (the winner bid will display it)
  • 1.9.0
    • Adding an "Offspec Penalty" feature which only works for DKP mode. This penalty will "upgrade" an OS bid (at the penalty %) to compete with MS bids. For example, setting this value to 50% would mean that an OS bid of "10" would be the same as a MS bid of "5". The addon handles all of the math and will display the calculated bid along with the actual bid like 5(10). If the "Alt Penalty" is also in effect, the penalty is considered multiplicative. So an alt OS bid would compete with a MS bid after accounting for both of those penalties.
  • 1.8.1
    • Removing #(0) announces for rolls on alts
  • 1.8.0
    • Adding in "Alt Penalty" which is entirely optional for DKP mode. This value will alter bids coming in if the "Note" starts with the letters a l t case-insensitive.
      • /loot debug 1 to see the value as you move the slider; showing the "value" on all of the sliders is a TODO enhancement
      • /loot debug 0 to turn off the spam
  • 1.7.5
    • Properly removing someone's SR when they win (when configured)
    • Fixing error when canceling a bid in SR mode
    • Announcing the item someone is bidding for when announce is enabed (previosuly only announced the tier/amt)
  • 1.7.4
    • Updated ChatThrottleLib to get around Turtle chat bans
  • 1.7.3
    • Fixing DKP mode (all sessions were started in MSOS mode)
  • 1.7.2
    • Separating 'Delete' and 'Unload' into separate buttons
    • Separating 'Load' and 'Add' into separate buttons
    • Allowing 'Add' to create new raids on the same calendar day
  • 1.7.1
    • Added a GUI for Soft Reserve Managing / Editing / Importing
  • 1.7.0
    • Adding a GUI for confiuration
      • Most slash-commands for configuration were removed and should now only be set via the GUI panel
  • 1.6.3
    • Added Soft Reserve name validation (Requires AtlasLoot 1.12.1, Turtle)
  • 1.6.1-2
    • Soft Reserve Bug Fixes
  • 1.6.0
    • Changed MSOS mode to be the default after a fresh install
    • Added Soft Reserve functionality to MSOS mode
      • As the loot master, type /loot sr load to get started. You can use defined SR raid names to persist entries from week to week (Ex/ /loot sr load BWL). Valid sr subcommands are: load, unload, delete, show, lock, unlock, instructions, json, csv, semicolon, and raidresfly
      • When loaded, a Soft Reserve list can accept bids from raiders with: /w Masterlooter sr [item-link]. A precise name in place of a link will work, but there is no validation. Misspellings will not match future loot drops.
      • When a loot session is started, items that are SR'd will be removed from the MSOS bidding list. SR bidders will be notified via whisper.
      • When the loot session ends, SR items will be announced and/or rolled off.
      • Ability to import/export with various formats: csv, json, semicolon, raidresfly (Ex/ /loot sr json)
    • Modified /loot autostageloot so that it takes it 2 parameters (min and max) so you can effectively filter out legendary drops and do epics only like this: /loot autostageloot 4 4
  • 1.5.2
    • Added the "Mode" (MSOS or DKP) to the Stage GUI frame for the Master Looter's reference
  • 1.5.1
    • Enabling the setting of previously added properties:
    • /loot autostage which will turn on/off the GUI popup when you loot a boss
    • /loot autostageloot which sets the minimum rairity of what is put into the GUI stage (0-5); 4 (epic) is the default
  • 1.5.0
    • Adding MS/OS mode for non-bid raids /loot msos to switch modes and /loot dkp to switch back
  • 1.4.4
    • Fixing a bug with duplicate whisper filtering that caused the same whisper from different people to be filtered
  • 1.4.3
    • Preventing duplicate whisper responses if incoming whispers are read in multiple windows

About

A 1.12.1 compatible WoW addon which tracks basic master looting sessions through in-game chat

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages