def _create_plugin_info(self, plugin_name): """Create a new :class:`plugins.info.PluginInfo` instance. :param str plugin_name: Name of the plugin whose plugin info should be created. :raise PluginFileNotFoundError: Raised if the plugin's main file wasn't found. :rtype: PluginInfo """ if not self.plugin_exists(plugin_name): raise PluginFileNotFoundError( 'Plugin "{}" does not exist.'.format(plugin_name)) info_file = self.get_plugin_directory(plugin_name) / 'info.ini' if not info_file.isfile(): # Just return an "empty" PluginInfo instance. We don't have more # information. return PluginInfo(plugin_name) info = ConfigObj(info_file) return PluginInfo(plugin_name, info.pop('verbose_name', None), info.pop('author', None), info.pop('description', None), info.pop('version', None), info.pop('url', None), tuple(info.pop('permissions', dict()).items()), self._get_public_convar_from_info_file(info), self._get_display_in_listing_from_info_file(info), **info.dict())
from cvars.public import PublicConVar from plugins.info import PluginInfo info = PluginInfo() info.name = "LimitZones (Editor)" info.basename = 'limit_zones_editor' info.author = 'Kirill "iPlayer" Mysnik' info.version = '1.0' info.variable = '{}_version'.format(info.basename) info.convar = PublicConVar( info.variable, info.version, "{} version".format(info.name)) info.url = "https://github.com/KirillMysnik/SP-LimitZones"
from commands.typed import TypedSayCommand, TypedClientCommand from cvars.public import PublicConVar from events import Event from filters.players import PlayerIter from mathlib import Vector from menus.radio import PagedRadioMenu, PagedRadioOption from messages import SayText2 from players.dictionary import PlayerDictionary from players.entity import Player from plugins.info import PluginInfo from translations.strings import LangStrings # ============================================================================= # >> PLUGIN INFO # ============================================================================= info = PluginInfo("simple_teleport") info.basename = "simple_teleport" info.name = "Simple Teleport" info.description = "Easily teleport players" info.author = "Kill, iPlayer" info.version = "1.0" info.url = "https://steamcommunity.com/id/killtmwc | " \ "https://steamcommunity.com/id/its_iPlayer" PublicConVar(name=info.basename + "_version", value=info.version, description=info.description) # ============================================================================= # >> CONSTANTS # =============================================================================
from commands.say import SayCommand from core import console_message from core.version import VERSION from plugins.info import PluginInfo from motdplayer import Page info = PluginInfo(__name__) def log_console(message): console_message("[{}] {}".format(info.verbose_name, message)) class Example1Page(Page): plugin_id = "motd_example1" page_id = "example1_page" def on_data_received(self, data): if data['action'] == "get-sp-version": self.send_data({'version': VERSION}) else: log_console("Error! Unexpected action: {}".format(data['action'])) @SayCommand('!example1_page') def say_test_st_page(command, index, team_only): Example1Page.send(index)