Repository navigation
Releases
UIFramework v1.8.0
Added
- Search with Ctrl+F. Ctrl+F, or the new magnifier at the top right, opens a search bar in every window. It
finds settings (by label, help, section, page and key), messages and pages; every word typed has to occur, in any
order, whatever the case and the accents. Up and Down move, Enter goes there: the page comes to the front and the
field is scrolled into view, ringed for a moment and given the cursor. Games declare nothing for it and need no
update;Tip("search")adds the magnifier to a window's tour. See The search in
docs/Schema.md. UIFramework.Preview -windowshots <folder> -search <text>photographs the search bar with that typed in, and
where its first result leads.
SHA-256 of UIFramework.dll: 7f71db353963f027f4528fcdf209f299779f2ae4201af3a45721a6a597cc1bf8
UIFramework v1.7.0
Added
UiAdBreak: Twitch's ad break as a window of time for a game. Chat stays usable while ads run, so that is
when a round fits.Beginopens the window from Streamer.bot's Ad Run trigger for the ads' length (there is no
trigger for their end),ActiveandSecondsLeftsay whether ads run,Announceanswers the Upcoming Ad
trigger once per break,RoundsThatFitandWithBonusdo the sums. See Twitch's ad breaks in
docs/Schema.md.- An Automation page in the conventions, with five keys for the ad break (
adBreakStart,adBreakAnnounce,
adBreakAnnounceMinutes,adBreakBonusPercent,adBreakOnly) in English, German and Spanish.
Changed
- The timer's keys (
autoStart…) are on the Automation page instead of Game. A game that names their page
itself is not affected. - Trivia and Hangman start rounds with ad breaks and have the Automation page.
SHA-256 of UIFramework.dll: 69478b3cbdd79d8067e79a99c72c3b9dbdbd3d2c9a742c440c47706151b409f2
UIFramework v1.6.0
Added
- Custom triggers and methods are declared once.
UiWindow.Trigger,Triggers(several that share their
arguments) andMethodsay what a game offers the streamer's own actions.UiTriggers.RegisterinInit()
registers the triggers from that list, and the Help page ends with Custom triggers and Methods for your own
actions, each with its arguments, in English, German and Spanish. - Fire with sample values. A button under each trigger on the Help page has the game fire it once with its
sample values, so an action that listens to it can be tried without playing a round. UiLive: whether you are live. Twitch through its API with Streamer.bot's token, YouTube by the monitored
broadcasts, Kick through its channel page;Live,OfflineorUnknown, never an exception. Twitch and Kick
are asked by the DLL, since the host block must compile in an action withoutSystem.dll. Trivia's own check
moved here, and Hangman's automatic rounds use it.tools\copy-host-block.ps1, and-Into/-HostNameonupdate-host-block.ps1: the block a game carries
goes into its other action and intohosts\<host>\HostBlock.csin one step, with-Checkto compare.
Changed
- A conventions key hands on its
requires, so the timer's intervals are greyed out with their switch in a
game that declares them with key and default alone (already in 1.5.0, not listed there). - Trivia, Hangman, Blackjack and Battleship declare their triggers and methods this way.
SHA-256 of UIFramework.dll: e65a5cea249886e4e828572a4c9f8c0b471ad4670c2b0a6a27eb7be5313d3188
UIFramework v1.5.0
Added
- A timed action on a random time and after chat lines. Streamer.bot's timer dialog offers a fixed interval, a
random one and "only after so many chat lines", but code can set only the interval.UiTimerin the host block
keeps the other two:Syncbrings the timed action in line with the settings (a running timer keeps its
countdown unless the schedule was just saved),Rearmdraws a random timer's next wait each time it fires, and
NoteLine/TakeLinescount chat lines per platform and hold a start back until there are enough. See A timed
action in docs/Schema.md. - Five convention keys for it:
autoStartEnabled,autoStartIntervalMinutes,autoStartRandom,
autoStartIntervalMaxMinutesandautoStartMinChatLines, with page, row, labels and help in English, German and
Spanish. A game declares them with key and default alone.
Changed
- Trivia and Hangman run their automatic rounds on it (Trivia v9.3.0, Hangman v13.3.0). The host copies of
Trivia, Hangman, Blackjack and Battleship are the games' current ones.
SHA-256 of UIFramework.dll: 70676b41e5f1f31e2e051684f97d102a2e0f4aa8002975b9adf0fa09b20ef976
UIFramework v1.4.3
Fixed
- A table's columns end at its edge. A list shown as a table (Trivia's own questions) left an empty column after
its last one: the columns were sized as if the vertical scrollbar always showed, and the whole pixels lost a few
more. They now share the width the rows really have, with the scrollbar only while it shows, and follow it as rows
are added or removed; what is left over goes to the widest column.
SHA-256 of UIFramework.dll: 470970bc4f801b59ae20ea96e785d633744c0da4f4066abc8031d3aff1f0d43e
UIFramework v1.4.2
Fixed
- A field moved in the customise mode no longer splits a section. Dropped among the fields of another section,
it joins that section (kept in the layout file by the name the game declared, so it holds in every language);
before, it kept its own and both headings showed twice. - The red i no longer blames the game for the user's layout. "The section ... is split by another section"
looks at the order the game declared; where the user moved fields is not the game author's to fix.
SHA-256 of UIFramework.dll: 9d4e1c1dc148b15d7fbd578b94729ed60b0835a1f3cccea226afc72b9426f516
UIFramework v1.4.1
Changed
- Only round versions are stable releases (2.0.0, 3.0.0); every other version is published as a pre-release, this
one included. The release workflow decides it from the tag. - Update checks count pre-releases. The update notice and the window's new-version check take a game's newest
published release, pre-release or not (drafts never), since nearly every version between two round ones is a
pre-release now. The log's link goes to that release.
SHA-256 of UIFramework.dll: 53294b33e51f80b2c85ee27a56c2027581f143f04a1e00aa2d9a4af5b92c63dc
UIFramework v1.4.0
Changed
- The update notice comes as Streamer.bot starts, in every chat, or as a Windows notification. A game calls
UiUpdateNotice.Startup(...)from itsInit()with Precompile on Application Start ticked, so the notice no
longer waits for the first use of a game. About 20 seconds after the first game starts it goes to every chat whose
broadcaster account is connected (Twitch, YouTube, Kick); while none is, it is a Windows notification. Still once
per Streamer.bot start, one notice for all games. - Games choose how they tell it:
UiWindow.Updates(chat, chatText, toast, toastAlways, toastTitle, toastText),
with{updates}and{count}in the texts; in the schemawindow.updates. Games with the same texts share one
line. The About page's switch reads Tell me about updates. - The host block of 1.3.0, which asked on ordinary runs of the game, is still answered.
SHA-256 of UIFramework.dll: 6dff9044d35614a6422883afe439346592721e77221697f9b4859afaf8f78916
UIFramework v1.3.0
Added
- An update notice in chat, once per Streamer.bot start. A few minutes after the first game of a Streamer.bot
run is used, one line in that chat names what is new: the games used so far whose newest release is newer than
the version they run, UIFramework when a newer release is out, and a game whose settings action is too old for
it. Then nothing more until Streamer.bot starts again; the links are in Streamer.bot's log. The DLL asks GitHub
in the background at most twice a day and keeps the answers inUIFramework\updates.json; the game action never
waits for it. Tell chat about updates on the About page leaves a game out ("updateNotices": false). Games get
it with the host block of this version.
SHA-256 of UIFramework.dll: 1fabd5866c651af8b9b79230299242e5373060b7added18733d9d1b40aa4761d
UIFramework v1.2.0
Fixes from an audit of the whole framework, and the logo on the About page.
Added
- The UIFramework logo on the About page. Faint in the bottom right corner, like a watermark, so the window shows
it is the original framework: brighter under the mouse, its tooltip names the framework's version, a click opens
its page. It sits under the content, never over a link, in the dark or the light version for the theme.
Fixed
- Help under fields in named rows. A button or switch beside other fields lines up with them again, a button's
help line goes under the row instead of stretching its column, and every help line keeps a gap to the next field. - List files are never written over by mistake. A list kept in a file of its own that the game holds open stops
the save with the reason, instead of counting as damaged and being written from the window. A list that could not
be read when the window opened shows its defaults, says so behind the red i, and is not written from that
window. - Reset page leaves lists in files of their own, transient and read-only settings alone, as Reset all does.
Both dialogs say what they do: Reset all saves at once and keeps the file as it was as.bak. - A game setting called
darkMode,DarkMode,egg,Eggorrainbowis no longer taken for the window's theme
and removed from the game's file. - A condition such as
!mode=freealways held. The red i now names it, with the way to write it (mode!=free). - A cooldown that reads a key no setting has is named behind the red i; before, only a line in the log said so
on every save. - The version check no longer fails ("Value cannot be null") for a game whose version is no number.
- Add row in a list with a search typed clears the search, so the new row shows.
- Host block:
UiHost.Handleclears the window's arguments before it calls the game's handler, so an action the
handler runs is not taken for a window request. Games get this with their next host-block update. - The demo game no longer names the framework's repository as its
releases, which showed an update pill in every
demo window after each framework release. - Docs: Getting-Started's snippet for an existing game declares its three constants and reads its settings; the
table snippet has theuserCooldownits cooldown reads; the DLL goes intolib\<version>\; whatActionNameis
for. Customize: How to play, Log and About sit at the foot of the page list; help and about lines translate.
SHA-256 of UIFramework.dll: e5832d6667ac6e42d0d56b505215fb79058e92fc106d7e479e4c0d167948e736