Example #1
0
def join_channels():
    global joined_channels

    bourgeon.log("IRC Plugin:")
    for channel in CHANNELS:
        server.join(channel)
        bourgeon.log("  > Joined %s" % channel)
    joined_channels = True
Example #2
0
    def handle_messages(self) -> None:
        message = self.window.read()
        while message is not None:
            msg_id, values = message
            if msg_id == self.UiMessage.WindowClosed:
                self.close()
            elif msg_id == self.UiMessage.ComboItemSelected:
                log(f"Combo item selected: {values[0]}")
            elif msg_id == self.UiMessage.CheckBoxChecked:
                self.check_box_state = values[0]
                log(f"CheckBox state: {self.check_box_state}")
            elif msg_id == self.UiMessage.TextInputEdited:
                log(f"TextInput has been edited: {values[0]}")
            elif msg_id == self.UiMessage.ListBoxItemSelected:
                log(f"ListBox item selected: {values[0]}")

            message = self.window.read()
Example #3
0
    def handle_messages(self) -> None:
        message = self.window.read()
        while message is not None:
            msg_id, values = message
            if msg_id == self.UiMessage.AutopotWindowClosed:
                self.close()
            elif msg_id == self.UiMessage.AutopotToggle:
                self.activated = values[0]
                self.hp_input.set_read_only(self.activated)
                self.sp_input.set_read_only(self.activated)
                self.hp_combo.set_disabled(self.activated)
                self.sp_combo.set_disabled(self.activated)
                if self.activated:
                    bourgeon.log("Autopot activated")
                    bourgeon.log(
                        f" -> HP {config.hp_min_percent}%/{config.selected_hp_item}"
                    )
                    bourgeon.log(
                        f" -> SP {config.sp_min_percent}%/{config.selected_sp_item}"
                    )
                else:
                    bourgeon.log("Autopot deactivated")
            elif msg_id == self.UiMessage.HpEdit:
                try:
                    config.hp_min_percent = int(values[0])
                except ValueError:
                    config.hp_min_percent = 0
            elif msg_id == self.UiMessage.SpEdit:
                try:
                    config.sp_min_percent = int(values[0])
                except ValueError:
                    config.sp_min_percent = 0
            elif msg_id == self.UiMessage.HpItemSelected:
                item_index = values[0]
                config.selected_hp_item = config.hp_items[item_index]["id"]
            elif msg_id == self.UiMessage.SpItemSelected:
                item_index = values[0]
                config.selected_sp_item = config.sp_items[item_index]["id"]

            message = self.window.read()
Example #4
0
SERVER = "irc.rizon.net"
NICKNAME = "ro_client"
CHANNEL = "#Hercules"

# Plugin code ------------------------------------------------------------------
# This plugin requires the irc library
# To install it, it's as simple as: pip install irc
import bourgeon
import ragnarok_client as ro_client
import irc.client
import atexit

in_game = False

# Objects' initialization
bourgeon.log("-= IRC plugin =-")
irc_client = irc.client.Reactor()
server = irc_client.server()


# Called every 100ms
def on_tick():
    global irc_client
    irc_client.process_once()


# Called whenever we arrive on the map server
def on_enter_ingame():
    global server

    server.join(CHANNEL)
Example #5
0
def on_chat_message(message):
    bourgeon.log(message)
Example #6
0
def on_tick():
    bourgeon.log("Tick")
Example #7
0
# Plugin code ------------------------------------------------------------------
import bourgeon
import ragnarok_client as client


def on_tick():
    bourgeon.log("Tick")


def on_chat_message(message):
    bourgeon.log(message)


bourgeon.log("-= Test plugin =-")
bourgeon.register_callback("OnChatMessage", on_chat_message)
bourgeon.register_callback("Tick", on_tick)
Example #8
0
def on_chat_message(message):
    global in_game

    if not in_game:
        in_game = True
    bourgeon.log(message)
Example #9
0
import bourgeon
import ragnarok_client as client

in_game = False


def on_tick():
    if in_game:
        hp_percent = client.get_hp() / client.get_max_hp()
        sp_percent = client.get_sp() / client.get_max_sp()

        if hp_percent < HP_MIN_PERCENT:
            if client.use_item(RED_SLIM_POTION):
                client.print_in_chat("Using a HP potion", 0xFFFFFF, 0)
        elif sp_percent < SP_MIN_PERCENT:
            if client.use_item(BLUE_POTION):
                client.print_in_chat("Using a SP potion", 0xFFFFFF, 0)


def on_chat_message(message):
    global in_game

    if not in_game:
        in_game = True
    bourgeon.log(message)


bourgeon.log("-= Autopot plugin =-")
bourgeon.register_callback("OnChatMessage", on_chat_message)
bourgeon.register_callback("Tick", on_tick)
Example #10
0
    # Fetch every 5s or so
    if s == 0:
        pull_messages(watched_channels)
    s = (s + 1) % 50


# Called whenever an in-game chat message is received
def on_chat_message(message):
    global in_game

    if not in_game:
        in_game = True


bourgeon.log("-= Discord plugin =-")
guild = find_guild(SERVER)
if guild:
    bourgeon.log("Found discord server: %s" % SERVER)
    watched_channels = find_channels(guild, CHANNELS)
    if watched_channels:
        bourgeon.log("Now listening to:")
        for channel in watched_channels:
            bourgeon.log("- %s" % channel["name"])
        bourgeon.register_callback("OnChatMessage", on_chat_message)
        bourgeon.register_callback("OnTick", on_tick)
    else:
        bourgeon.log("No accessible channels found in the server")
else:
    bourgeon.log("Failed to find the discord server '%s'" % SERVER)
Example #11
0
def on_tick() -> None:
    """
    OnTick callback.
    """
    global ap_window

    ap_window.handle_messages()
    if current_mode == Mode.Game and ap_window.activated:
        hp_percent = (client.get_hp() / client.get_max_hp()) * 100.0
        sp_percent = (client.get_sp() / client.get_max_sp()) * 100.0

        if hp_percent < config.hp_min_percent:
            client.use_item(config.selected_hp_item)
        elif sp_percent < config.sp_min_percent:
            client.use_item(config.selected_sp_item)


def on_command(chat_buffer: str) -> None:
    """
    OnTalkType callback.
    """
    if chat_buffer.find("/autopot") == 0:
        ap_window.open()


bourgeon.register_callback("OnTick", on_tick)
bourgeon.register_callback("OnModeSwitch", on_mode_switch)
bourgeon.register_callback("OnTalkType", on_command)
bourgeon.log("Autopot plugin loaded!")
Example #12
0
        while message is not None:
            msg_id, values = message
            if msg_id == self.UiMessage.WindowClosed:
                self.close()
            elif msg_id == self.UiMessage.ComboItemSelected:
                log(f"Combo item selected: {values[0]}")
            elif msg_id == self.UiMessage.CheckBoxChecked:
                self.check_box_state = values[0]
                log(f"CheckBox state: {self.check_box_state}")
            elif msg_id == self.UiMessage.TextInputEdited:
                log(f"TextInput has been edited: {values[0]}")
            elif msg_id == self.UiMessage.ListBoxItemSelected:
                log(f"ListBox item selected: {values[0]}")

            message = self.window.read()


demo_window = DemoWindow()
demo_window.open()
log("Demo UI loaded!")


def on_tick() -> None:
    """
    OnTick callback.
    """
    global demo_window
    demo_window.handle_messages()


register_callback("OnTick", on_tick)
Example #13
0
            dir_name = parts[1]
            printf("%s $ %s %s" % (g_pwd, CMD_CD, dir_name))

            if dir_name == "..":
                pass

            if not os.path.isdir(g_pwd + "\\" + dir_name):
                printf("%s: No such file or directory" % CMD_CD)
                return
            g_pwd += "\\" + dir_name
    #cat
    elif chat_buffer.find("/%s" % CMD_CAT) == 0:
                parts = chat_buffer.split(" ")
                printf("%s $ %s" % (g_pwd, CMD_CAT))
                if len(parts) < 2:
                    return
                for i in range(1, len(parts)):
                    try:
                        f = open(g_pwd + "\\" + parts[i], "r")
                    except FileNotFoundError:
                        printf("%s: %s: No such file or directory" % (CMD_CAT, parts[i]))
                        continue
                    if f:
                        for line in f:
                            printf(line)
                        f.close()


bourgeon.log("> bash.py - The shitty bash plugin")
bourgeon.register_callback("OnTalkType", on_command)