示例#1
0
    async def on_start(self):
        # Register permission & command for managing queue.
        await self.instance.permission_manager.register(
            'manage_queue',
            'Clear or shuffle the queue',
            app=self,
            min_level=2)
        await self.instance.command_manager.register(
            Command('queue', target=self.command_queue_list),
            Command('clear',
                    namespace='queue',
                    target=self.command_queue_clear,
                    admin=True,
                    perms='queue:manage_queue'),
            Command('shuffle',
                    namespace='queue',
                    target=self.command_queue_shuffle,
                    admin=True,
                    perms='queue:manage_queue'),
        )

        self.has_password = self.instance.game.server_password is not None and len(
            self.instance.game.server_password) > 0

        await self.init_queue()
示例#2
0
    async def on_start(self):
        # Register permission & command for managing queue.
        await self.instance.permission_manager.register(
            'manage_queue',
            'Clear or shuffle the queue',
            app=self,
            min_level=2)
        await self.instance.command_manager.register(
            Command('queue', target=self.command_queue_list),
            Command('clear',
                    namespace='queue',
                    target=self.command_queue_clear,
                    admin=True,
                    perms='queue:manage_queue'),
            Command('shuffle',
                    namespace='queue',
                    target=self.command_queue_shuffle,
                    admin=True,
                    perms='queue:manage_queue'),
        )

        # Make sure the spectators can't switch to player, and players can't join directly as player.
        # Also make sure the widget is displayed to the spectators.
        calls = []
        logins = []
        for player in self.instance.player_manager.online:
            if player.flow.is_spectator:
                calls.append(
                    self.instance.gbx('ForceSpectator', player.login, 1))
                logins.append(player.login)
        if len(calls) > 0:
            await asyncio.gather(self.instance.gbx.multicall(*calls),
                                 self.widget.display(player_logins=logins))
示例#3
0
    async def on_start(self):
        self.songs = await self.get_songs()
        self.list_view = MusicListView(self)
        self.playlist_view = PlaylistView(self)

        await self.context.setting.register(self.setting_override_map_music)

        await self.instance.command_manager.register(
            Command(command='play', target=self.play_song,
                    admin=True).add_param(name='songname',
                                          type=str,
                                          required=True),
            Command(command='song', target=self.get_current_song, admin=False),
            Command(command='songlist',
                    aliases='musiclist',
                    target=self.song_list,
                    admin=False),
            Command(command='playlist', target=self.show_playlist,
                    admin=False),
            Command(command='clearplaylist',
                    target=self.clear_playlist,
                    admin=True),
        )

        self.current_song_index = -1
示例#4
0
文件: app.py 项目: reaby/PyPlanet
    async def on_start(self):
        # Call components.
        await self.setting.on_start()
        await self.dev.on_start()

        # Change some ui elements positions and visibility.
        self.instance.ui_manager.properties.set_visibility('live_info', False)
        self.instance.ui_manager.properties.set_attribute(
            'live_info', 'pos', '-125. 84. 5.')
        self.instance.ui_manager.properties.set_attribute(
            'warmup', 'pos', '86., 87., 5.')

        # Display logo.
        await self.controller_view.display()

        # Listeners.
        self.context.signals.listen('maniaplanet:player_connect',
                                    self.on_connect)
        await self.instance.command_manager.register(
            Command('version', self.chat_version),
            Command('upgrade',
                    self.chat_upgrade,
                    admin=True,
                    description='Upgrade PyPlanet installation (Experimental)'
                    ).add_param('to_version',
                                type=str,
                                default=None,
                                required=False,
                                help='Upgrade to specific version'))
示例#5
0
    async def on_start(self):
        await self.instance.permission_manager.register(
            'pay', 'Pay planets to players', app=self, min_level=3)
        await self.instance.permission_manager.register(
            'planets', 'Display amount of planets', app=self, min_level=3)

        await self.instance.command_manager.register(
            Command(command='planets',
                    target=self.display_planets,
                    perms='transactions:planets',
                    admin=True),
            Command(command='pay',
                    target=self.pay_to_player,
                    perms='transactions:pay',
                    admin=True).add_param(
                        name='login', required=True).add_param(name='amount',
                                                               required=True),
            Command(command='donate',
                    target=self.donate).add_param(name='amount',
                                                  required=True),
        )

        # Register callback.
        self.instance.signal_manager.listen(mp_signals.other.bill_updated,
                                            self.bill_updated)
示例#6
0
    async def on_start(self):
        # Registering permissions
        await self.instance.permission_manager.register(
            'match_control',
            'Starting/Stopping brawl matches',
            app=self,
            min_level=2)

        # Registering commands
        await self.instance.command_manager.register(
            Command('start',
                    namespace='match',
                    target=self.start_match_command,
                    perms='brawl_match:match_control',
                    admin=True),
            Command('stop',
                    namespace='match',
                    target=self.stop_match,
                    perms='brawl_match:match_control',
                    admin=True),
            Command('ready',
                    aliases=['r'],
                    namespace='match',
                    target=self.player_ready),
            Command('endwu', namespace='match', target=self.vote_endwu),
            Command('break', namespace='match', target=self.request_break))
示例#7
0
    async def on_start(self):
        # Register permissions + commands.
        await self.instance.permission_manager.register('clear',
                                                        'Clear the jukebox',
                                                        app=self,
                                                        min_level=1)
        await self.instance.command_manager.register(
            Command(command='cjb',
                    target=self.clear_jukebox,
                    perms='jukebox:clear',
                    admin=True),
            Command(command='clearjukebox',
                    target=self.clear_jukebox,
                    perms='jukebox:clear',
                    admin=True),
            Command(command='list',
                    target=self.show_map_list).add_param(name='search',
                                                         required=False),
            Command(command='jukebox',
                    target=self.chat_command).add_param(name='option',
                                                        required=False))

        # Register callback.
        self.instance.signal_manager.listen(mp_signals.flow.podium_start,
                                            self.podium_start)
示例#8
0
    async def on_start(self):
        if self.instance.db.engine.__class__.__name__.lower().find(
                'postgresql') != -1:
            raise NotImplementedError(
                "Rankings app only works on PyPlanet instances running on MySQL."
            )

        # Listen to signals.
        self.context.signals.listen(mp_signals.map.map_end, self.map_end)
        self.context.signals.listen(mp_signals.player.player_connect,
                                    self.player_connect)

        # Register commands.
        await self.instance.command_manager.register(
            Command('rank',
                    target=self.chat_rank,
                    description='Displays your current server rank.'),
            Command('nextrank',
                    target=self.chat_nextrank,
                    description=
                    'Displays the player ahead of you in the server ranking.'),
            Command('topranks',
                    target=self.chat_topranks,
                    description='Displays a list of top ranked players.'),
        )

        # Register settings
        await self.context.setting.register(self.setting_records_required,
                                            self.setting_chat_announce,
                                            self.setting_topranks_limit)
示例#9
0
    async def on_start(self):
        await self.instance.permission_manager.register(
            'add_remote',
            'Add map from remote source (such as MX)',
            app=self,
            min_level=2)
        await self.context.setting.register(self.setting_mx_key)

        await self.instance.command_manager.register(
            Command(command='info', namespace='mx', target=self.mx_info),
            Command(command='search',
                    namespace='mx',
                    target=self.search_mx_map,
                    perms='mx:add_remote',
                    admin=True),
            Command(command='add',
                    namespace='mx',
                    target=self.add_mx_map,
                    perms='mx:add_remote',
                    admin=True).add_param('maps',
                                          nargs='*',
                                          type=str,
                                          required=True,
                                          help='MX ID(s) of maps to add.'),
            Command(command='mx',
                    namespace='add',
                    target=self.add_mx_map,
                    perms='mx:add_remote',
                    admin=True).add_param('maps',
                                          nargs='*',
                                          type=str,
                                          required=True,
                                          help='MX ID(s) of maps to add.'),
        )
示例#10
0
    async def on_start(self):
        # Register permissions + commands.
        await self.instance.permission_manager.register('clear',
                                                        'Clear the jukebox',
                                                        app=self,
                                                        min_level=1)
        await self.instance.command_manager.register(
            Command(command='cjb',
                    target=self.clear_jukebox,
                    perms='jukebox:clear',
                    admin=True),
            Command(command='clearjukebox',
                    target=self.clear_jukebox,
                    perms='jukebox:clear',
                    admin=True),
            Command(command='list',
                    target=self.show_map_list).add_param(name='search',
                                                         required=False),
            Command(command='jukebox',
                    target=self.chat_command).add_param(name='option',
                                                        required=False),
            Command(command='mapfolders', target=self.show_map_folders))

        # Register callback.
        self.context.signals.listen(mp_signals.flow.podium_start,
                                    self.podium_start)

        # Add button to the map list for adding to a folder.
        MapListView.add_action(self.add_to_folder,
                               'Add to folder',
                               '',
                               order=-50)

        # Fetch all folders.
        await self.folder_manager.on_start()
示例#11
0
	async def on_start(self):
		# Register signals.
		self.context.signals.listen(mp_signals.player.player_connect, self.on_connect)

		# Register commands.
		await self.instance.command_manager.register(
			Command(command='paypal', target=self.chat_paypal, admin=False)
		)
		await self.instance.command_manager.register(
			Command(command='discord', target=self.chat_discord, admin=False),
		)

		# Register settings.
		await self.context.setting.register(
			self.setting_enable_discord,
			self.setting_enable_paypal,

			self.setting_paypal_url,
			self.setting_discord_join_url,
			self.setting_discord_server_id,
		)

		# Force reload of settings.
		await self.reload_settings()

		# Call the display method.
		await self.display()
示例#12
0
	async def on_start(self):
		# Register commands
		await self.instance.command_manager.register(
			Command(command='records', target=self.show_records_list),
			Command(
				'localcps', target=self.command_localcps, description='Compare your local record checkpoints with another record.'
			).add_param('record', required=False, type=int, help='Custom record rank to compare with. Defaults to 1.', default=1)
		)

		# Register signals
		self.context.signals.listen(mp_signals.map.map_begin, self.map_begin)
		self.context.signals.listen(tm_signals.finish, self.player_finish)
		self.context.signals.listen(mp_signals.player.player_connect, self.player_connect)

		# Register settings
		await self.context.setting.register(self.setting_chat_announce, self.setting_record_limit)

		# Register permissions
		await self.instance.permission_manager.register('manage_records', 'Manage records', app=self, min_level=3)

		# Load initial data.
		await self.refresh_locals()
		await self.chat_current_record()

		if self.widget is None:
			self.widget = LocalRecordsWidget(self)

		await self.widget.display()
示例#13
0
	async def on_start(self):
		# Register permissions + commands.
		await self.instance.permission_manager.register('clear', 'Clear the jukebox', app=self, min_level=1)
		await self.instance.command_manager.register(
			Command(command='clearjukebox', aliases=['cjb'], target=self.clear_jukebox, perms='jukebox:clear', admin=True,
					description='Clears the current maps from the jukebox.'),
			Command(command='list', target=self.show_map_list,
					description='Displays the maps currently in the jukebox.').add_param(name='search', required=False),
			Command(command='jukebox', target=self.chat_command,
					description='Provides access to the jukebox commands.').add_param(name='option', required=False),
			Command(command='mapfolders', aliases=['mf'], target=self.show_map_folders,
					description='Shows the available (personal) map folders.'),
		)

		# Register settings.
		await self.context.setting.register(self.setting_newest_days_range, self.setting_allow_juking)

		# Register callback.
		self.context.signals.listen(mp_signals.flow.podium_start, self.podium_start)

		# Add button to the map list for adding to a folder.
		MapListView.add_action(self.add_to_folder, 'Add to folder', '', order=-50)

		# Fetch all folders.
		await self.folder_manager.on_start()
示例#14
0
	async def on_start(self):
		await self.instance.command_manager.register(
			Command(command='players', target=self.player_list),
			Command(command='laston', aliases=['lastseen'], target=self.command_laston).add_param(name='login', required=True),
		)
		await self.context.setting.register(
			self.setting_enable_join_msg, self.setting_enable_leave_msg
		)

		player_signals.player_connect.register(self.player_connect)
		player_signals.player_disconnect.register(self.player_disconnect)
示例#15
0
	async def on_start(self):
		await self.instance.command_manager.register(
			Command(command='players', target=self.player_list, description='Displays the list of players currently online.'),
			Command(command='laston', aliases=['lastseen'], target=self.command_laston,
					description='Displays the last time the provided player was online on this server.').add_param(name='login', required=True),
		)
		await self.context.setting.register(
			self.setting_enable_join_msg, self.setting_enable_leave_msg
		)

		player_signals.player_connect.register(self.player_connect)
		player_signals.player_disconnect.register(self.player_disconnect)
示例#16
0
文件: tm.py 项目: reaby/PyPlanet
    async def on_start(self):
        # Listen to signals.
        self.app.context.signals.listen(finish, self.on_finish)

        # Register commands.
        await self.app.instance.command_manager.register(
            # Command('stats', target=self.open_stats),
            Command('topsums', target=self.topsums),
            Command(command='scoreprogression',
                    aliases=['progression'],
                    target=self.open_score_progression),
        )
示例#17
0
	async def on_start(self):
		await self.context.setting.register(
			self.setting_voting_enabled, self.setting_voting_ratio, self.setting_remind_interval, self.setting_enabled_replay,
			self.setting_enabled_restart, self.setting_enabled_skip, self.setting_callvoting_disable,
			self.setting_callvoting_timeout, self.setting_enabled_time_extend
		)

		await self.instance.permission_manager.register('cancel', 'Cancel the current vote', app=self, min_level=1)
		await self.instance.permission_manager.register('pass', 'Pass the current vote', app=self, min_level=1)

		await self.instance.command_manager.register(
			Command(command='cancel', target=self.cancel_vote, perms='voting:cancel', admin=True),
			Command(command='pass', target=self.pass_vote, perms='voting:pass', admin=True),
			Command(command='y', aliases=['yes'], target=self.vote_yes),
			Command(command='n', aliases=['no'], target=self.vote_no),
			Command(command='replay', target=self.vote_replay),
			Command(command='restart', aliases=['res'], target=self.vote_restart),
			Command(command='skip', target=self.vote_skip),
			Command(command='extend', target=self.vote_extend),
		)

		self.widget = VoteWidget(self)
		await self.widget.display()

		# Register callback.
		self.context.signals.listen(mp_signals.flow.podium_start, self.podium_start)
		self.context.signals.listen(mp_signals.player.player_connect, self.player_connect)
		self.context.signals.listen(mp_signals.map.map_begin, self.map_start)

		if await self.setting_callvoting_disable.get_value() is True:
			# Disable callvoting
			await self.instance.gbx('SetCallVoteTimeOut', 0)
示例#18
0
	async def on_start(self):
		await self.instance.permission_manager.register(
			'admin_pm',
			'Private message for admins',
			app=self,
			min_level=2
		)

		await self.instance.permission_manager.register(
			'pm_log',
			'Private message log for admins',
			app=self,
			min_level=2
		)

		await self.instance.command_manager.register(
			Command(
				'pm',
				target=self.command_pm
			).add_param(
				'player',
				required=True,
				type=str,
				help='Login to send private message to'
			).add_param('message', required=True, type=str, help='Message')
		)

		await self.instance.command_manager.register(
			Command(
				'adminpm',
				target=self.command_adminpm,
				perms='private_message:admin_pm',
				admin=True
			).add_param(
				'message',
				required=True,
				type=str,
				help='Message'
			)
		)

		await self.instance.command_manager.register(
			Command(
				'pmlog',
				target=self.command_pm_log,
				perms='private_message:pm_log',
				admin=True
			)
		)
示例#19
0
    async def on_start(self):
        await self.instance.permission_manager.register(
            'locdel', 'delete all local record', app=self.app, min_level=2)
        await self.instance.permission_manager.register('waitingmap',
                                                        'set waiting map',
                                                        app=self.app,
                                                        min_level=2)
        await self.instance.command_manager.register(
            Command(command='omerde', target=self.get_top),
            Command(command='locdel', target=self.delete_locals, admin=True),
            Command(command='waitingmap', target=self.waiting_map, admin=True),
            Command(command='test', target=self.db_debug),
        )

        player_chat.register(self.on_chat)
示例#20
0
 async def on_start(self):
     # Register commands.
     await self.app.instance.command_manager.register(
         Command(
             'topactive',
             target=self.top_active,
             description='Displays the most active players on this server.'
         ),
         Command(
             'topdons',
             target=self.top_donators,
             description=
             'Displays the players who donated the most planets to this server.'
         ),
     )
示例#21
0
    async def test_registering(self):
        instance = Controller.prepare(name='default').instance
        await instance.db.connect()
        await instance.apps.discover()
        await instance.db.initiate()

        self.target_called = 0

        from pyplanet.apps.core.maniaplanet.models import Player
        from pyplanet.contrib.command import Command

        test1 = Command(
            'test',
            self.target,
            aliases=['tst'],
            admin=False,
        )
        await instance.command_manager.register(test1)

        # Try to fetch the command.
        player, _ = await Player.get_or_create(login='******',
                                               nickname='sample-1',
                                               level=Player.LEVEL_MASTER)
        await instance.command_manager._on_chat(player, '/test', True)
        await instance.command_manager._on_chat(player, '/tst', True)

        assert self.target_called == 2
示例#22
0
    async def on_start(self):
        await super().on_start()

        self.context.signals.listen(mp_signals.ui.manialink_answer, self.compare_click)
        self.context.signals.listen(mp_signals.map.map_start, self.map_start)
        self.context.signals.listen(tm_signals.start_countdown, self.display_graph)

        await self.instance.command_manager.register(
            Command(command='compare',
                    target=self.compare_chat).add_param('playerlogin', nargs='1', type=str, required=True,
                                                        help='Playerlogin to compare to. (Will be plotted in blue.)'),
        )

        self.widget = GraphView(self)
        self.local_records = self.instance.apps.apps["local_records"]

        if "dedimania" not in self.instance.apps.apps:

            class StubDedi():
                def __init__(self):
                    self.current_records = []

            class StubRecord():
                def __init__(self, cps, player):
                    self.cps = cps
                    self.login = player

            self.dedimania = StubDedi()
            # self.dedimania.current_records.append(StubRecord("1000,2300,2800,3000", "tomriddle"))
            # self.dedimania.current_records.append(StubRecord("1300,2400,2800,3500", "steven"))
            # self.dedimania.current_records.append(StubRecord("1100,2300,2400,3700", "peavis"))
        else:
            self.dedimania = self.instance.apps.apps["dedimania"]

        await self.reset_widget()
示例#23
0
	async def on_start(self):
		# Init settings.
		await self.context.setting.register(
			self.setting_server_login, self.setting_dedimania_code,
			self.setting_chat_welcome, self.setting_chat_announce, self.setting_sent_announce
		)

		# Load settings + initiate api.
		if self.instance.game.game == "tm":
			await self.reload_settings()
		return
		
		# Register signals
		self.context.signals.listen(mp_signals.map.map_begin, self.map_begin)
		self.context.signals.listen(mp_signals.map.map_start, self.map_start)
		self.context.signals.listen(mp_signals.map.map_end, self.map_end)

		self.context.signals.listen(mp_signals.flow.podium_start, self.podium_start)

		self.context.signals.listen(tm_signals.finish, self.player_finish)
		self.context.signals.listen(mp_signals.player.player_connect, self.player_connect)
		self.context.signals.listen(mp_signals.player.player_disconnect, self.player_disconnect)

		# Register commands
		await self.instance.command_manager.register(
			Command(
				'dedicps', target=self.command_dedicps, description='Compare your dedimania record checkpoints with another record.'
			).add_param('record', required=False, type=int, help='Custom record rank to compare with. Defaults to 1.', default=1)
		)

		# Change round results widget location.

		# Load initial data.
		self.widget = DedimaniaRecordsWidget(self)
示例#24
0
    async def on_start(self):
        # Register commands.
        await self.instance.command_manager.register(
            Command(command='whokarma', target=self.show_map_list))

        # Register signals.
        self.context.signals.listen(mp_signals.map.map_begin, self.map_begin)
        self.context.signals.listen(mp_signals.map.map_end,
                                    self.mx_karma.map_end)
        self.context.signals.listen(mp_signals.player.player_chat,
                                    self.player_chat)
        self.context.signals.listen(mp_signals.player.player_connect,
                                    self.player_connect)

        await self.context.setting.register(
            self.setting_finishes_before_voting, self.setting_expanded_voting)

        # Load initial data.
        await self.get_votes_list(self.instance.map_manager.current_map)
        await self.calculate_karma()
        await self.mx_karma.on_start()

        await self.chat_current_karma()

        self.widget = KarmaWidget(self)
        await self.widget.display()

        await self.load_map_votes()
示例#25
0
    async def on_start(self):
        await super().on_start()
        await self.instance.permission_manager.register(
            'admin', 'Administer the messages', app=self, min_level=3)
        await self.instance.command_manager.register(
            Command('messages',
                    admin=True,
                    target=self.show_setting_window,
                    perms='messages:admin'))
        await self.context.setting.register(self.msg_interval_setting)

        self.context.signals.listen(mp_signals.map.map_start, self.map_start)
        self.context.signals.listen(mp_signals.flow.podium_start,
                                    self.on_map_end)
        self.context.signals.listen(mp_signals.player.player_connect,
                                    self.on_connect)
        self.manialinks = [
            ml for ml in await Message.execute(Message.select())
        ]
        await self.manialinks_updated()
        await self.display()
        self.loop = asyncio.get_event_loop()
        self.msg_loop_task = asyncio.ensure_future(self.handle_messages(),
                                                   loop=self.loop)
        await self.manialinks_updated()
示例#26
0
    async def on_start(self):
        await self.instance.permission_manager.register(
            'end_round',
            'Force ending a round (warmup, race or custom)',
            app=self.app,
            min_level=2)
        await self.instance.permission_manager.register(
            'points_repartition',
            'Change the points repartition',
            app=self.app,
            min_level=2)

        # Trackmania specific:
        if self.instance.game.game == 'tm':
            await self.instance.command_manager.register(
                Command(command='endround',
                        target=self.end_round,
                        perms='admin:end_round',
                        admin=True,
                        description='Ends the current round of play.'),
                Command(command='endwuround',
                        target=self.end_wu_round,
                        perms='admin:end_round',
                        admin=True,
                        description='Ends the current warm-up round of play.'),
                Command(command='endwu',
                        target=self.end_wu,
                        perms='admin:end_round',
                        admin=True,
                        description='Ends the complete warm-up on this map.'),
                Command(
                    command='pointsrepartition',
                    aliases=['pointsrep'],
                    target=self.set_point_repartition,
                    perms='admin:points_repartition',
                    admin=True,
                    description='Alters the points repartitioning.').add_param(
                        'repartition',
                        nargs='*',
                        type=str,
                        required=True,
                        help='Repartition, comma or space separated.'),
            )

        # Shootmania specific.
        if self.instance.game.game == 'sm':
            pass
示例#27
0
	async def on_start(self):
		await self.instance.permission_manager.register('callvoting', 'Handle server callvoting', app=self.app, min_level=1)
		await self.instance.permission_manager.register('password', 'Set the server passwords', app=self.app, min_level=2)
		await self.instance.permission_manager.register('servername', 'Set the server name', app=self.app, min_level=2)
		await self.instance.permission_manager.register('mode', 'Set the server game mode', app=self.app, min_level=2)
		await self.instance.permission_manager.register('chat_toggle', 'Turn the public chat on or off', app=self.app, min_level=2)

		await self.instance.command_manager.register(
			Command(command='cancelcallvote', aliases=['cancelcall'], target=self.cancel_callvote, perms='admin:callvoting',
					admin=True, description='Cancels the current callvote (server vote).'),
			Command(command='setpassword', aliases=['srvpass'], target=self.set_password, perms='admin:password', admin=True,
					description='Sets the player password of the server.').add_param(name='password', required=False),
			Command(command='setspecpassword', aliases=['spectpass'], target=self.set_spec_password, perms='admin:password',
					admin=True, description='Sets the spectator password of the server.').add_param(name='password', required=False),
			Command(command='servername', target=self.set_servername, perms='admin:servername', admin=True,
					description='Changes the name of the server.').add_param(name='server_name', required=True, nargs='*'),
			Command(command='mode', target=self.set_mode, perms='admin:mode', admin=True,
					description='Changes the gamemode of the server.').add_param(name='mode', required=True, nargs='*'),
			Command(command='modesettings', target=self.mode_settings, perms='admin:mode', admin=True,
					description='Displays and allows for updating of the gamemode settings.')
				.add_param(name='setting', required=False)
				.add_param(name='content', required=False),
			Command(command='chat', target=self.chat_toggle, perms='admin:chat_toggle', admin=True,
					description='Enables/disables the chat.')
				.add_param(name='enable', required=False),
		)

		# Register signal receivers.
		player_chat.register(self.on_chat)
示例#28
0
	async def on_start(self):
		await self.instance.permission_manager.register(
			'add_remote', 'Add map from remote source (such as MX)', app=self, min_level=2)
		await self.context.setting.register(
			self.setting_mx_key
		)

		await self.instance.command_manager.register(
			Command(command='info', namespace='mx', target=self.mx_info,
					description='Display ManiaExchange information for current map.'),
			# support backwards
			Command(command='mx', namespace='add', target=self.add_mx_map, perms='mx:add_remote', admin=True,
					description='Add map from ManiaExchange to the maplist.').add_param(
				'maps', nargs='*', type=str, required=True, help='MX ID(s) of maps to add.'),

			# new mx namespace
			Command(command='search', aliases=['list'], namespace='mx', target=self.search_mx_map, perms='mx:add_remote',
					admin=True, description='Search for maps on ManiaExchange.'),
			Command(command='add', namespace='mx', target=self.add_mx_map, perms='mx:add_remote', admin=True,
					description='Add map from ManiaExchange to the maplist.').add_param(
				'maps', nargs='*', type=str, required=True, help='MX ID(s) of maps to add.'),
			Command(command='status', namespace='mx', target=self.status_mx_maps, perms='mx:add_remote', admin=True,
					description='View the map statuses compared to ManiaExchange.'),

			# new mxpack namespace
			Command(command='search', aliases=['list'], namespace='mxpack', target=self.search_mx_pack,
					perms='mx:add_remote', admin=True, description='Search for mappacks on ManiaExchange.'),
			Command(command='add', namespace='mxpack', target=self.add_mx_pack, perms='mx:add_remote', admin=True,
					description='Add mappack from ManiaExchange to the maplist.')
				.add_param('pack', nargs='*', type=str, required=True, help='MX ID(s) of mappacks to add.'),
		)
示例#29
0
    async def on_start(self):

        await self.instance.command_manager.register(
            Command(command='qjoin',
                    target=self.command_qjoin,
                    admin=False,
                    description='QuickJoin a other Server'))

        self.serverswitch_widget = views.ServerswitchWidget(self)
示例#30
0
文件: setting.py 项目: w1lla/PyPlanet
	async def on_start(self):
		await self.app.instance.permission_manager.register(
			'edit_server_settings', 'Edit server global settings.', app=self.app, min_level=3
		)

		await self.app.instance.command_manager.register(
			# Command('settings', self.player_settings, admin=False),
			Command('settings', self.admin_settings, perms='core.pyplanet:edit_server_settings', admin=True,
					description='Displays and allows editing PyPlanet/plugin settings.'),
		)