def onPortalCreateEvent(self, event): #Check to make sure that it's a portal being lit, not one automatically created by a teleport. if event.getReason() == PortalCreateEvent.CreateReason.FIRE: #Check if the player near has the permission to light, if so light it. for player in Bukkit.getServer().getOnlinePlayers(): if player.hasPermission("omneity.portal.light"): distance = player.getLocation().distanceSquared(event.getBlocks()[0].getLocation()) if 5 <= distance <= 25: event.setCancelled(True) player.sendMessage("-") player.sendMessage(chatcolor.YELLOW + "You, or someone quite near, tried to light a portal.") player.sendMessage(chatcolor.GREEN + "You were able to light that portal!") player.sendMessage(chatcolor.RED + "If it was you that tried to light the portal,") player.sendMessage(chatcolor.RED + "stand inside the portal and light it.") player.sendMessage(chatcolor.GRAY + "This is very finicky - you might have to move up or sideways,") player.sendMessage(chatcolor.GRAY + "especially for really large portals.") player.sendMessage(chatcolor.GRAY + str(distance) + " square meters off - need to be under 5.") player.sendMessage(chatcolor.YELLOW + "Otherwise, ask them to request your assistance in lighting it.") player.sendMessage("-") return player.sendMessage(chatcolor.GREEN + "Portal successfully lit.") return #Not able to light - continue on. event.setCancelled(True) for player in Bukkit.getServer().getOnlinePlayers(): if player.getLocation().distanceSquared(event.getBlocks()[0].getLocation()) <= 25: player.sendMessage("-") player.sendMessage(chatcolor.YELLOW + "You, or someone quite near, tried to light a portal.") player.sendMessage(chatcolor.RED + "You'll have to modreq for one, as lighting your own is disabled.") player.sendMessage("-") return
def onPayGem(self, sender, args): if self.iconomy is None: sender.sendMessage("Vault not found!") return if not sender.isOp(): sender.sendMessage("Only for OP!") return if len(args) < 3: sender.sendMessage("Usage: paygem <player> <cost> <gemname>") return namePlayer = args[0] cost = float(args[1]) nameGem = args[2] player = Bukkit.getPlayer(namePlayer) if not self.iconomy.has(namePlayer, cost): player.sendMessage(u"%sНе хватает денег на покупку. Требуется %d голд." % (ChatColor.RED, cost)) return self.iconomy.withdrawPlayer(namePlayer, cost) server = Bukkit.getServer() server.dispatchCommand(server.getConsoleSender(), "md gem %s -a 1 -g %s" % (namePlayer, nameGem))
def OnChanMsg(self, name, message): if name in self.Muted: return alias = self.GetAlias(name) if alias.IsServer: args = message.split() if args[0].endswith(':'): Bukkit.broadcastMessage(alias.GetTag(args[0][:-1]) + " ".join(args[1:])) else: Bukkit.broadcastMessage(str(ChatColor.YELLOW) + " ".join(args[:2]) + " " + alias.Name.lower()) else: args = message.split(' ') if args[0].startswith('%'): channel = args[0][1:] ChannelChat.GetChan().ChanMsgIRC('&1[&3IRC&1]&f'+name, channel, ' '.join(args[1:])) elif args[0].startswith('@'): reciever = args[0][1:] for player in Bukkit.getServer().getOnlinePlayers(): if player.getName() == reciever: player.sendMessage(str(ChatColor.BLUE) + "[" + str(ChatColor.AQUA) + "IRC " + name + " -> me" + str(ChatColor.BLUE) + "]" + str(ChatColor.WHITE) + " " + " ".join(args[1:])) else: Bukkit.broadcastMessage(alias.GetTag(name) + message)
def onEnable(self): try: self.pheroes = Bukkit.getServer().getPluginManager().getPlugin("Heroes") except: print "Heroes plugin ploblems!" self.iconomy = PluginVault.setupEconomy() if self.iconomy is None: print "Vault not found!"
def spawn(dispname, sender, x, y, z): """ Sends the actual player to sender """ server = bukkit.getServer().getServer() world = server.getWorldServer(0) # main world profile = GameProfile(dispname, dispname) # set player details manager = PlayerInteractManager(world) entity = EntityPlayer(server, world, profile, manager) # create Player's entity entity.setPosition(x, y, z) packet = PacketPlayOutNamedEntitySpawn(entity) # create packet for entity spawn sender.getHandle().playerConnection.sendPacket(packet) # send packet
def spawn(dispname, sender, x, y, z): """ Sends the actual player to sender """ server = bukkit.getServer().getServer() world = server.getWorldServer(0) # main world profile = GameProfile(dispname, dispname) # set player details manager = PlayerInteractManager(world) entity = EntityPlayer(server, world, profile, manager) # create Player's entity entity.setPosition(x, y, z) packet = PacketPlayOutNamedEntitySpawn( entity) # create packet for entity spawn sender.getHandle().playerConnection.sendPacket(packet) # send packet
def OnPrivMsg(self, name, message): Helper.Info("Private IRC message from %s: %s" % (name, message)) alias = self.GetAlias(name) args = message.split(' ') if args[0].startswith('%'): channel = args[0][1:] ChannelChat.GetChan().ChanMsgIRC('&1[&3IRC&1]&f'+name, channel, ' '.join(args[1:])) elif args[0].startswith('@'): reciever = args[0][1:] for player in Bukkit.getServer().getOnlinePlayers(): if player.getName() == reciever: player.sendMessage(str(ChatColor.BLUE) + "[" + str(ChatColor.AQUA) + "IRC " + name + " -> me" + str(ChatColor.BLUE) + "]" + str(ChatColor.WHITE) + " " + " ".join(args[1:]))
def Severe(Message): Bukkit.getServer().getLogger().log(Level.SEVERE, Message)
def Info(Message): Bukkit.getServer().getLogger().log(Level.INFO, Message)
print('Importing command definitions...') from jycraft.plugin.interpreter import PyContext from org.bukkit import Bukkit from org.bukkit import Location from org.bukkit import Material from org.bukkit import Effect from org.bukkit.command import Command from org.bukkit.event import Listener, EventPriority from random import * SERVER = Bukkit.getServer() WORLD = SERVER.getWorlds().get(0) MORNING = 2000 NOON = 6000 EVENING = 14000 NIGHT = 18000 # reflection to get command map _commandMapField = SERVER.getClass().getDeclaredField("commandMap") _commandMapField.setAccessible(True) _commandMap = _commandMapField.get(SERVER) #full list of BlockTypes available in JavaDocs on canarymod.net AIR = Material.AIR STONE = Material.STONE GRASS = Material.GRASS DIRT = Material.DIRT COBBLESTONE = Material.COBBLESTONE
from org.bukkit.command import Command from org.bukkit.event import Listener, EventPriority, HandlerList from org.bukkit.scheduler import BukkitRunnable from org.bukkit.FireworkEffect import Type as FireworkEffectType from functools import wraps from threading import Thread from random import * from time import sleep import sys import traceback SERVER = Bukkit.getServer() WORLD = SERVER.getWorlds().get(0) PLUGIN = SERVER.getPluginManager().getPlugin('MinecraftPyServer') _commandMapField = SERVER.getClass().getDeclaredField("commandMap") _commandMapField.setAccessible(True) _commandMap = _commandMapField.get(SERVER) class SpigotRunnable(BukkitRunnable): def __init__(self, execfunc): super(BukkitRunnable, self).__init__() self.execfunc = execfunc self.returnval = None self.done = False def run(self): try:
def severe(message): Bukkit.getServer().getLogger().log(Level.SEVERE, message)
def info(message): Bukkit.getServer().getLogger().log(Level.INFO, message)
def __init__(self): self.bukkit = Bukkit.getServer()
def write(self, text): # TODO: Remove duplication for print() Bukkit.getServer().getLogger().info("[PyPlugins] [PRINT]: {}".format( text.rstrip()))
__author__ = 'stsouko' __plugin_name__ = "UlmcRP-weather" __plugin_version__ = "0.2" __plugin_mainclass__ = "ulmc" from boiler import Logger from seasoneditor import SeasonEditor from java.lang import Runnable from java.io import File from time import strftime import org.bukkit.Bukkit as Bukkit server = Bukkit.getServer() logs = Logger(__plugin_name__) class NewChunkTimer(Runnable): def __init__(self, world): self.world = world self.chunks = [] def add(self, chunk): self.chunks += [[chunk.getX(), chunk.getZ(), 2]] def run(self): for chunk in self.chunks: if chunk[2] == 0: timer.change(self.world.getChunkAt(chunk[0], chunk[1]))