NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

devFunctions.py (4186B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\menuSvcExtras\devFunctions.py
      2 import blue
      3 import carbonui.const as uiconst
      4 import carbon.common.lib.serverInfo as serverInfo
      5 import sys
      6 from eve.client.script.ui.util import uix, utilWindows
      7 from eveexceptions import UserError
      8 from eveservices.menu import GetMenuService
      9 from eveservices.xmppchat import GetChatService
     10 from player_messaging.client.ui_message import prompt_player, prompt_player_fsd_dialog
     11 
     12 def SlashCmd(cmd):
     13     try:
     14         sm.RemoteSvc('slash').SlashCmd(cmd)
     15     except RuntimeError:
     16         prompt_player('This only works on items at your current location.', 'Oops!', options=uiconst.OK)
     17 
     18 
     19 def SlashCmdTr(cmd):
     20     SlashCmd(cmd)
     21     GetMenuService().ClearAlignTargets()
     22 
     23 
     24 def GagPopup(charID, channelID, numMinutes):
     25     reason = 'Gagged for Spamming'
     26     ret = utilWindows.NamePopup('Gag User', 'Enter Reason', reason)
     27     if ret:
     28         sm.GetService('chat').mute_player(charID, channelID, numMinutes * 60, ret)
     29 
     30 
     31 def Ungag(charID, channelID):
     32     sm.GetService('chat').unmute_player(charID, channelID)
     33 
     34 
     35 def BanIskSpammer(charID):
     36     if prompt_player_fsd_dialog('ConfirmBanIskSpammer', {'name': cfg.eveowners.Get(charID).name}, uiconst.YESNO) != uiconst.ID_YES:
     37         return
     38     SlashCmd('/baniskspammer %s' % charID)
     39 
     40 
     41 def GagIskSpammer(charID):
     42     if prompt_player_fsd_dialog('ConfirmGagIskSpammer', {'name': cfg.eveowners.Get(charID).name}, uiconst.YESNO) != uiconst.ID_YES:
     43         return
     44     SlashCmd('/gagiskspammer %s' % charID)
     45 
     46 
     47 def ReportISKSpammer(charID, channelID):
     48     if prompt_player_fsd_dialog('ConfirmReportISKSpammer', {'name': cfg.eveowners.Get(charID).name}, uiconst.YESNO) != uiconst.ID_YES:
     49         return
     50     if charID == session.charid:
     51         raise UserError('ReportISKSpammerCannotReportYourself')
     52     chat_svc = GetChatService()
     53     if chat_svc.IsSpammer(charID):
     54         return
     55     spamEntries = chat_svc.GetSpamEntries(charID, channelID)
     56     chat_svc.AddSpammer(charID)
     57     chat_svc.ReloadChannel(channelID)
     58     channel = chat_svc.channels.get(channelID, None)
     59     if channel and channel.info:
     60         channelID = channel.info.displayName
     61     sm.RemoteSvc('userSvc').ReportISKSpammer(charID, channelID, spamEntries)
     62 
     63 
     64 def SetDogmaAttribute(itemID, attrName, actualValue):
     65     ret = uix.QtyPopup(None, None, actualValue, 'Set Dogma Attribute for <b>%s</b>' % attrName, 'Set Dogma Attribute', digits=5)
     66     if ret:
     67         cmd = '/dogma %s %s = %s' % (itemID, attrName, ret['qty'])
     68         SlashCmd(cmd)
     69 
     70 
     71 def SetKillCounter(ball):
     72     currentValue = 0
     73     ret = uix.QtyPopup(None, None, currentValue, 'Set Kill Counter', 'Set Kill Counter', digits=0)
     74     if ret and ball is not None:
     75         if hasattr(ball, 'model'):
     76             if ball.model is not None:
     77                 if hasattr(ball.model, 'displayKillCounterValue'):
     78                     ball.model.displayKillCounterValue = int(ret['qty'])
     79 
     80 
     81 def AttributeMenu(itemID, typeID):
     82     d = sm.StartService('info').GetAttributeDictForType(typeID)
     83     statemgr = sm.StartService('godma').GetStateManager()
     84     a = statemgr.attributesByID
     85     lst = []
     86     for attributeID, baseValue in d.iteritems():
     87         attrName = a[attributeID].name
     88         try:
     89             actualValue = statemgr.GetAttribute(itemID, attrName)
     90         except:
     91             sys.exc_clear()
     92             actualValue = baseValue
     93 
     94         lst.append(('%s - %s' % (attrName, actualValue), SetDogmaAttribute, (itemID, attrName, actualValue)))
     95 
     96     lst.sort(lambda x, y: cmp(x[0], y[0]))
     97     return lst
     98 
     99 
    100 def GetFromESP(action):
    101     espaddy = serverInfo.GetServerInfo().espUrl
    102     blue.os.ShellExecute('http://%s/%s' % (espaddy, action))
    103 
    104 
    105 def NPCInfoMenu(item):
    106     lst = []
    107     action = 'gd/type.py?action=Type&typeID=' + str(item.typeID)
    108     lst.append(('Overview', GetFromESP, (action,)))
    109     action = 'gd/type.py?action=TypeDogma&typeID=' + str(item.typeID)
    110     lst.append(('Dogma Attributes', GetFromESP, (action,)))
    111     action = 'gd/npc.py?action=GetNPCInfo&shipID=' + str(item.itemID) + '&solarSystemID=' + str(session.solarsystemid)
    112     lst.append(('Info', GetFromESP, (action,)))
    113     return lst