From 8551a1e0c12569b1347f5f6bfd605c37f3484acc Mon Sep 17 00:00:00 2001 From: BroBordd Date: Mon, 7 Apr 2025 02:16:15 +0200 Subject: [PATCH] Refactored and fixed updown Fixed a bug where chat messages were to double because s._chat_texts stopped having the widgets for some reason so i just nuked all s._columnwidget's children. --- plugins/utilities/updown.py | 94 ++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 42 deletions(-) diff --git a/plugins/utilities/updown.py b/plugins/utilities/updown.py index 0e91483..9910dde 100644 --- a/plugins/utilities/updown.py +++ b/plugins/utilities/updown.py @@ -1,32 +1,45 @@ -import babase as ba -import bauiv1 as bui -import bauiv1lib.party -from bascenev1 import get_chat_messages as gcm, screenmessage as push +from bauiv1lib import party +from babase import ( + SpecialChar as sc, + charstr as cs, + Plugin, + Call +) +from bauiv1 import ( + containerwidget as cw, + buttonwidget as bw, + textwidget as tw, + getsound as gs +) +from bascenev1 import ( + get_chat_messages as gcm, + screenmessage as push +) - -class VeryPW(bauiv1lib.party.PartyWindow): +class VeryPW(party.PartyWindow): def __init__(s, *args, **kwargs): super().__init__(*args, **kwargs) s._n = 0 s._o = "" s._f = True - s._chat_texts_haxx = [] for i in range(2): - bui.buttonwidget( + bw( parent=s._root_widget, size=(30, 30), - label=ba.charstr(ba.SpecialChar.DOWN_ARROW if i else ba.SpecialChar.UP_ARROW), + label=cs(getattr(sc,f"{['UP','DOWN'][i]}_ARROW")), button_type='square', - position=(-15, 70 - (i * 40)), - on_activate_call=(s._d if i else s._p) + enable_sound=False, + position=(-15,70-(i*40)), + on_activate_call=[s._p,s._d][i] ) - def _c(s, t=""): bui.textwidget(edit=s._text_field, text=t) + def _c(s, t=""): tw(edit=s._text_field, text=t) def _d(s): s._p(1) def _p(s, i=0): + print (s._chat_texts) if s._f: - s._o = bui.textwidget(query=s._text_field) + s._o = tw(query=s._text_field) s._f = False s._n = -1 s._n = s._n + (1 if i else -1) @@ -36,42 +49,39 @@ class VeryPW(bauiv1lib.party.PartyWindow): except IndexError: if not s._w1: push("Empty chat") + gs('block').play() s._n = 0 return s._n = -1 s._c(s._o) + gs('deek').play() - for msg in s._chat_texts: - msg.delete() - for msg in s._chat_texts_haxx: - msg.delete() + [z.delete() for z in s._columnwidget.get_children()] for z in range(len(s._w1)): - txt = bui.textwidget(parent=s._columnwidget, - text=s._w1[z], - h_align='left', - v_align='center', - size=(900, 13), - scale=0.55, - color=(1, 1, 1) if z != (s._n if s._n > - - 1 else s._n + len(s._w1) + 1) else (0, 0.7, 0), - position=(-0.6, 0), - selectable=True, - autoselect=True, - click_activate=True, - maxwidth=s._scroll_width * 0.94, - shadow=0.3, - flatness=1.0) - bui.textwidget(edit=txt, - on_activate_call=ba.Call( - s._copy_msg, - s._w1[z])) - s._chat_texts_haxx.append(txt) - bui.containerwidget(edit=s._columnwidget, visible_child=txt) + txt = tw( + parent=s._columnwidget, + text=s._w1[z], + h_align='left', + v_align='center', + size=(900, 13), + scale=0.55, + color=(1, 1, 1) if z != (s._n if s._n > -1 else s._n + len(s._w1) + 1) else (0, 0.7, 0), + position=(-0.6, 0), + selectable=True, + autoselect=True, + click_activate=True, + maxwidth=s._scroll_width * 0.94, + shadow=0.3, + flatness=1.0 + ) + tw( + txt, + on_activate_call=Call(s._copy_msg,s._w1[z]) + ) + cw(edit=s._columnwidget, visible_child=txt) # ba_meta require api 9 # ba_meta export plugin - - -class byBordd(ba.Plugin): +class byBordd(Plugin): def __init__(s): - bauiv1lib.party.PartyWindow = VeryPW + party.PartyWindow = VeryPW