Git Product home page Git Product logo

loihcal's Introduction

Release

LOIHCal

LOIHCal is in game raid event signup role management addon created for guild <Lords of Ironhearts> of Arathor EU, but can be used by anyone. Addon was designed to be easy and fast to use with every button and action being (almost) self-explanatory.

What it does?

  • Works for all Player or Guild Event type raid events you can make calendar event for.

  • Helps you visualize the raid setup by role view and by numbers at the bottom of the Frame.

    • Counter on the bottom of the Frame shows the total number of players with role, per role, combined number of DPS as well separated melee and ranged DPS and Standby.
    • Total counter is colored either RED or GREEN depending on your total Accepted/Signed up/Confirmed players and selected raid difficulty.
      • Mythic: Green when you have 20 players with role and RED when you have more or less than 20 players with role.
      • Other difficulties: Green when you have between 10 and 30 players with role and RED when you have more than 30 or less than 10 players with role.
  • Opens and closes automatically when you view or close Player or Guild Event type event and can be set to attach on top of the Default Calendar event view.

  • Can be set to automatically change players sign up status to Confirmed when you give them role or to Standby if you put them to the Standby group.

  • Mass Invite tries to invite everyone with a role to a raid and set it up with your event settings.

  • Skins nicely with ElvUI.

  • Everything is saved per event so you can manage different type and size events without messing the settings.

    • 20man Mythic main raid and 10man Normal or 30man Heroic alt raid? No problem!
    • Guild raid and non-guild raid with friends? No problem!

What is new?

This is only short memo on changes, and doesn't include all changes and fixes.

  • NEW 7.2.4: Mark players without role or decayed autorole with red '@'-signs (@Playername@) when viewing event in LOIHCal and autoroledecay is turned on.
  • NEW 70100-1.1: Mark players in current raid group with corner brackets ([Playername]) when viewing event in LOIHCal.
  • NEW 60200-1.2: Almost full refactoring and multiple new features including: Config moved into Interface menu, slash handler, Auto-Roles, Quick Mode, ContextMenu, you can always sign yourself in LOIHCal now, even if you haven't Signed up yet...
  • NEW 60200-1.1: Whisper settings in the Config.
  • NEW 60100-1.2: Option to disable Auto-Confirm for players with role.
  • NEW 60000-1.9: Accepted, Signed up and Confirmed are on top of the list, added Mass Invite progress bar and every loot method is onw available as an option for events.
  • NEW 60000-1.8: Try to filter some of the invite spam.
  • NEW 60000-1.3: Config, Attach on top of the Default Blizzard view, default settings for new events, skinning...
  • NEW 60000-1.0: Updated pre-WoD raid difficulties into WoD difficulties.

How to use it?

This describes the usage of the LOIHCals own view on raid events.

Old style

In the old style you pre-select the role for players and then start moving them into that rolelist until you change the role to different one.

  1. Open raid event in Calendar.
  2. Select the role you want to give to players by clicking the title of the rolelist.
  3. Now the title bar should change color and you can start moving players into that role by clicking their name on any list you see (You cannot move Declined, Tentative or invited players unless it is yourself, use the ContextMenu instead).
  4. Select new role by clicking other title or deselect your current selection by clicking the selected title.

Quick Mode

In Quick Mode you don't pre-select the role by clicking the titles of the rolelists, but you select them on the fly by using your keyboard and mouse.

Modifier LeftButton RightButton
Shift Tanks Healers
None Melee Ranged
Ctrl Signups Standby
  1. Open raid event in Calendar.
  2. Select the role using Shift/None/Ctrl keys while clicking the names with LeftButton/RightButton according to table above.

Event settings

You can change the default settings for new events from the Config

  • Use dropdown menus to select raid difficulty, loot method and threshold.

Misc.

  • You can open the EventInviteContextMenu by clicking with Alt+RightButton on name in any rolelist (works also for Declined, Tentative and invited players) for all that goodness you previously needed to go to the Default Blizzard view.

    • You need to be either creator or moderator in the event for the ContextMenu to pop out.
  • You can set your own signup status to Tentative/Declined with Alt+LeftButton on your own name on any rolelist (The click combination alternates between Tentative and Declined).

  • + next to player name indicates event creator and ^ indicates event moderator.

  • Mass Invite button will invite everyone Accepted/Signed up/Confirmed with role to the raid and set up the raid the way you wanted.

    • Players without a role (in Signups group) won't be invited even if they are Accepted/Signed up/Confirmed by Mass Invite. If you want them to your raid, give them role.
    • You need to be either creator or moderator in the event for the button to be enabled.
    • Players already in your raid group are marked with corner brackets for you to easily tell who is still missing from your raid group ([Playerinraid] vs Playernotinraid).

Roles

Under roles tab you can check and alter the Auto-Roles LOIHCal has recorded.

  • Scrollbar section lists all the players in the database and their most used role.

  • Clicking the name opens you option to change their default role and shows latest event where they have Signed up.

  • When player is selected buttons for different roles are enabled and by pressing them you can set players default role.

    • Changing players default role won't change their role in events where the player has been already given a role and this change can be over written automaticly by opening too many newer events (after the date and time of manual change) where the player has different role.
  • When player is selected you can also remove all role data related to that player from database.

    • Player will be added back to database if you open up any events where the player has been given any roles.

Slash commands

Use /loihcal or your own translated slashcommand to list available parameters like config to open LOIHCal config or reset to reset database and reload UI.

Config

You can find config under Interface -&gt; Addons -&gt; LOIHCal

  • General settings

    • LOIHCals attach point, either on the side or on the top of the Default Blizzard view.
    • Default view to be opened when shown, either LOIHCal or Default Blizzard view (enabled only when attached on top)
    • Enable Quick Mode (See "How to use it?" for explanation on Quick Mode).
  • Automation settings

    • Auto-Roles, LOIHCal can keep track and set up previously used roles for players on raids if they are Accepted/Signed up/Confirmed.
    • Auto-Roles decay, automaticly remove any player who haven't Signed up for any of the raids in past 2 months to reduce the size of saved data (enabled only when Auto-Roles is enabled).
    • Auto-Confirm, confirms automaticly any player with role. Confirmed players can't change their sign up status later (they can remove the event), while Accepted/Signed up players can.
  • Default settings for new raid events

    • Set up default difficulty, loot method and threshold for newly created events. You can still change them by event basis without messing anything, but with this you can set up the settings to match your guilds default way of doing things and save time when creating new events.
  • Whispers Settings

    • LOIHCal can send whispers to players informing them why you are inviting them to raid on Mass Invite.
    • When editing the whisper remember:
      • Press Enter or Save-button to save it.
      • Press Esc to cancel any unsaved changes.
      • If you want to go back to default, just press the "Reset to Default"-button.
      • Use %s as a placeholder for event title on the whisper.
      • Line can't be empty, disable Send Whispers instead if you don't want to bother others.
  • Skinning settings

    • LOIHCal can skin itself with ElvUI (ElvUI required)
    • Skinning will be applied as soon as you tick the box.
    • To remove skinning you have to press the Reload UI for the changes to take effect.
  • Reset DB

    • If for any reason you want to remove all settigs and saved data you can Shift+Click the button to reset everything and Reload UI

Now what?

  • Download and use it

  • Send me feedback and suggestions

  • If you run into bugs, errors or any other weird situations, you can make a ticket or PM me at Curseforge.com (your Curse account should work there as well)

    • Try to give as much info about the error as possible and if you send ticket, please check the ticket later in case I have asked you some extra information about the error.
    • LOIHCal's Curseforge page: https://www.curseforge.com/wow/addons/loihcal
    • LUA error reports and/or screenshots are the hot stuff when fixing bugs
    • You can PM me also at Curse.com, but I don't check my PM:s in Curse.com as often as I do on Curseforge.com
  • If you are using any other language client than English, please consider translating this addon

  • If you know LUA, take a look at the source and send me feedback how to make things work and look better!

Translations

Language Translator
German (deDE) SpeedsharkX, pas06, Bommel2k9
Russian (ruRU) mednik
Traditional Chinese (zhTW) BNSSNB
Korean (koKR) yuk6196

loihcal's People

Contributors

ahakola avatar joschrader avatar

Stargazers

 avatar

Watchers

James Cloos avatar

Forkers

joschrader

loihcal's Issues

UI Blank since 10.0.5 update

Just updated today, and my UI is blank.

Bugsack picked up:

2x LOIHCal/LOIHCal.lua:605: field 'day' missing in date table
[string "=[C]"]: in function time' [string "@LOIHCal/LOIHCal.lua"]:605: in function <LOIHCal/LOIHCal.lua:477> [string "@LOIHCal/LOIHCal.lua"]:1679: in function tabSelectedCallback'
[string "@SharedXML/TabSystem/TabSystemTemplates.lua"]:175: in function SetTab' [string "@LOIHCal/LOIHCal.lua"]:1960: in function ?'
[string "@LOIHCal/LOIHCal.lua"]:1743: in function <LOIHCal/LOIHCal.lua:1742>

Locals:
(*temporary) =

{
monthDay = 20
weekday = 2
month = 2
minute = 8
hour = 20
year = 2023
}
(*temporary) = nil

image

LOIHCal not picking up updated raider status

When updating a raiders status on the main event screen, this is not flowing over straight away to the LOIHCal pop out screen. I have to switch to another event and then back again, in order for the addon to register the update.

debug messages:

Opening event (5th August):

LOIHCal: CALENDAR_OPEN_EVENT "GUILD_EVENT"
LOIHCal: - CalendarCreateEventFrame
LOIHCal: - Action Pending...
LOIHCal: >getState
LOIHCal: - Pending Action completed in 167ms.
LOIHCal: >setState
LOIHCal: _updateEventInfo: GUILD_EVENT
LOIHCal: >>> 1: FATED Nathria, 2: Poisonenvy, 3: 3, 4: 8, 5: 5, 6: 2022, 7: 21, 8: 30
LOIHCal: - 2022 8 5 2130 3-Poisonenvy
LOIHCal: - Found DB entry 3-Poisonenvy, updating
LOIHCal: _countSignups
LOIHCal: <<< Healers: 1
LOIHCal: <<< Ranged: 1
LOIHCal: _bottomText
LOIHCal: >>> NumInvites: 2, numSignup: 2, notReplied: 0
LOIHCal: MIB Enabled

Amending status of a raider on that event (which updated on default UI, but not on addon):

LOIHCal: CALENDAR_UPDATE_INVITE_LIST nil false true

Switching to a different event:

LOIHCal: CALENDAR_OPEN_EVENT "GUILD_EVENT"
LOIHCal: - CalendarCreateEventFrame
LOIHCal: - Action Pending...
LOIHCal: >getState
LOIHCal: - Pending Action completed in 167ms.
LOIHCal: >setState
LOIHCal: _updateEventInfo: GUILD_EVENT
LOIHCal: >>> 1: Sepulcher Normal, 2: Poisonenvy, 3: 9, 4: 7, 5: 8, 6: 2022, 7: 21, 8: 30
LOIHCal: - 2022 7 8 2130 9-Poisonenvy
LOIHCal: - Found DB entry 9-Poisonenvy, updating
LOIHCal: _countSignups
LOIHCal: <<< Tanks: 2
LOIHCal: <<< Healers: 4
LOIHCal: <<< Melee: 3
LOIHCal: <<< Ranged: 6
LOIHCal: <<< Signup: 4
LOIHCal: _bottomText
LOIHCal: >>> NumInvites: 19, numSignup: 16, notReplied: 1
LOIHCal: MIB Enabled

Switching back to the previously amended event (which now shows the updated raider status):

LOIHCal: CALENDAR_OPEN_EVENT "GUILD_EVENT"
LOIHCal: - CalendarCreateEventFrame
LOIHCal: - Action Pending...
LOIHCal: >getState
LOIHCal: - Pending Action completed in 167ms.
LOIHCal: >setState
LOIHCal: _updateEventInfo: GUILD_EVENT
LOIHCal: >>> 1: FATED Nathria, 2: Poisonenvy, 3: 3, 4: 8, 5: 5, 6: 2022, 7: 21, 8: 30
LOIHCal: - 2022 8 5 2130 3-Poisonenvy
LOIHCal: - Found DB entry 3-Poisonenvy, updating
LOIHCal: _countSignups
LOIHCal: <<< Healers: 1
LOIHCal: <<< Standby: 1
LOIHCal: _bottomText
LOIHCal: >>> NumInvites: 2, numSignup: 1, notReplied: 0
LOIHCal: MIB Enabled

Screenshot for example:

image

Clash with Guilds of WoW addon

Currently there is an issue when both LOIHCal and GoW addon are loaded. When GoW (Guilds of WoW) addon is running (not open, just running), and I open an event on the calendar, but then close the calendar .. not long after, that LOIHCal page will re-active by itself, without the calendar open. And will not close. The only way to close it, is to open up the calendar and select that event again, then close it. Which closes it for a while, before it then reopens by itself again. Only way to fix it, is to disable GoW addon. No bugs showing in Bugsack.

Pre-Patch Error

2x LOIHCal/LOIHCal.lua:2149: attempt to call global 'InterfaceOptions_AddCategory' (a nil value)
[string "@LOIHCal/LOIHCal.lua"]:2149: in main chunk

Locals:
ADDON_NAME = "LOIHCal"
ns =

{
version = "10.2.7"
colors =
{
}
functions =
{
}
rolesList =
{
}
difficulties =
{
}
numSignup = 0
DBdefaults =
{
}
openEvent =
{
}
inviteTable =
{
}
selectedPlayer = false
selected = false
L =
{
}
notReplied = 0
role =
{
}
}
L =
{
AutoRolesDesc = "Automaticly give accepted/confirmed players roles. Given roles are based on previous roles."
AutoRoles = "Auto-Roles"
AutomationSettingsTitle = "Automation settings"
AutoConfirmDesc = "Automaticly Confirm players with role. Confirmed players cannot change their sign up status later while accepted players can."
QuickMode = "Quick mode"
SaveDesc = "Save whisper message."
ResetWhisper = "Reset to Default"
Placeholder = "Use %s in the whisper for event name placeholder."
Out = "Out"
Roles = "Roles"
DefaultInvWhisper = "Raid event "%s" is about to start, please accept this invite."
Cancel = "Cancel"
Standbys = "Standbys"
TimeEstimate = "Estimated time left: ~%ds"
Healers = "Healers"
ServerWait = "Waiting for server-side data..."
Role = "Role: %s"
Dec = "Dec"
DefaultSettingsTitle = "Default settings for new raid events"
Tanks = "Tanks"
Melee = "Melee"
RoleDesc = "Change player role to %s"
Sta = "Sta"
DPS = "DPS"
RaidDifficulty = "Raid Difficulty"
AttachModeDesc = "Do you want to attach your %s frame on top or on side of the Default view?"
AutoConfirm = "Auto-Confirm"
DefaultViewDesc = "Open straight to %s view instead of Default view when opening event"
Ten = "Ten"
Con = "Con"
SkinWithDesc = "Do you want to skin %s with %s?"
RemoveDesc = "%sShift+Click%s to remove player from Auto-Role-list.
Player will be re-listed if you open any events where the player has been given a role."
SignupDesc = "^%sName%s / +%sName%s
Event moderator
%s@%sName%s@%s
No role data for auto-roles"
AutoRoleDecay = "Auto-Roles decay"
QuickModeDesc = "In quick mode, instead of selecting groups by clicking the group title, you use your mouse LeftButton/RightButton with modifiers None/Shift/Ctrl to determine where clicked player is sent.

Shift:
Left = Tanks - Right = Healers
None:
Left = Melee - Right = Ranged
Ctrl:
Left = Signups - Right = Standbys"
SendWhispersDesc = "Do you want to inform players with whisper on Mass Invite?"
ResetDB = "Reset DB"
WhisperSettingsTitle = "Whisper settings"
NotReplied = "Not replied"
SendingInvites = "Sending invites..."
AttachMode = "Attach on top of the Default view"
ResetDBDesc = "%sShift+Click%s to Reset DB"
CMD_LIST = "/loihcal ( %s | %s )"
Save = "Save"
DefaultView = "Open %s view as Default"
SkinReloadDesc = "You have to reload your UI to remove ElvUI skinning.
Pressing this button will reload your UI."
SkinReload = "Reload UI"
Remove = "Remove"
SkinWith = "Skin with %s"
SkinningTitle = "Skinning settings"
ResetWhisperDesc = "Reset whisper message back to Default."
MassInvite = "Mass Invite"
AutoRoleDecayDesc = "Automaticly remove players from Roles-list if they haven't signed up for %i months or more."
AutoStandBy = "Auto-Stand By"
MassInviteDesc = "Start Mass Invite"
AutoStandByDesc = "Automaticly move signed up players to Stand By when the selected raid size has been filled."
Not = "Not"
SendWhispers = "Send Whispers"
Default = "Default"
Sig = "Sig"
ReloadWarning = "%sWarning:%s Pressing this button will reload your UI, delete all event- and role-data and restore Default settings."
RemovedFromEvent = "|cffff0000Removed|r character "|c%1$s%2$s|r" from event "%3$s" (%4$02d.%5$02d.%6$04d %7$02d:%8$02d)"
Inv = "Inv"
Signups = "Signups"
Ranged = "Ranged"
LastSeen = "Last signup: %s"
Acc = "Acc"
GeneralSettingsTitle = "General settings"
CMD_CONFIG = "config"
CMD_RESET = "reset"
}
_G =

{
ERR_OUT_OF_CHI = "Not enough chi"
DH_HAVOC_CORE_ABILITY_2 = "Strong melee attack that consumes Fury. If it critical strikes, some Fury is refunded."
MultiCastActionButton6Cooldown = MultiCastActionButton6Cooldown {
}
MerchantItem9ItemButtonStock = MerchantItem9ItemButtonSt

LOIHCal not loading on event open

Error message since patch this week:

1x Interface/AddOns/LOIHCal/LOIHCalFrame.lua:241: CreateFrame(): Couldn't find inherited node "CharacterFrameTabButtonTemplate"
[string "=[C]"]: in function CreateFrame' [string "@Interface/AddOns/LOIHCal/LOIHCalFrame.lua"]:241: in function _tabFactory'
[string "@Interface/AddOns/LOIHCal/LOIHCalFrame.lua"]:309: in main chunk

Locals:
(*temporary) = "Button"
(*temporary) = "$parentTab1"
(*temporary) = LOIHCalTabsFrame {
0 =
}
(*temporary) = "CharacterFrameTabButtonTemplate"

UI is empty

Just updated to the latest version .. and suddenly my addon is empty. Got bug:

image

7x SharedXML/SecureScrollTemplates.lua:191: attempt to index local 'scrollBar' (a nil value)
[string "@SharedXML/SecureScrollTemplates.lua"]:191: in function FauxScrollFrame_Update' [string "@LOIHCal/LOIHCal.lua"]:1229: in function updateScrollBar'
[string "@LOIHCal/LOIHCalFrame.lua"]:238: in function <LOIHCal/LOIHCalFrame.lua:237>
[string "=[C]"]: in function Show' [string "@LOIHCal/LOIHCal.lua"]:1689: in function tabSelectedCallback'
[string "@SharedXML/TabSystem/TabSystemTemplates.lua"]:175: in function SetTab' [string "@LOIHCal/LOIHCal.lua"]:1973: in function ?'
[string "@LOIHCal/LOIHCal.lua"]:1756: in function <LOIHCal/LOIHCal.lua:1755>

Locals:
frame = TanksScrollBar {
0 =
ScrollBar = Frame {
}
}
numItems = 0
numToDisplay = 6
buttonHeight = 15
button = nil
smallWidth = nil
bigWidth = nil
highlightFrame = nil
smallHighlightWidth = nil
bigHighlightWidth = nil
alwaysShowScrollBar = nil
scrollBar = nil
scrollChildFrame = nil
scrollUpButton = nil
scrollDownButton = nil
showScrollBar = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "TanksScrollBarScrollBarScrollDownButton"
(*temporary) = "ScrollBarScrollDownButton"
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index local 'scrollBar' (a nil value)"

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.