Exemple #1
0
    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())
Exemple #2
0
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)