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
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()
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()
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)
def on_chat_message(message): bourgeon.log(message)
def on_tick(): bourgeon.log("Tick")
# 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)
def on_chat_message(message): global in_game if not in_game: in_game = True bourgeon.log(message)
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)
# 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)
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!")
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)
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)