From 884e0a349138a49a0b15fc37bd470c7a51a288a6 Mon Sep 17 00:00:00 2001 From: Dico200 Date: Wed, 29 Apr 2015 14:41:48 +0200 Subject: [PATCH 1/5] Added perm check to interactevent im blockplacemods fixes #19 --- blockplacemods.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/blockplacemods.py b/blockplacemods.py index 6258a13..4f0dc2d 100644 --- a/blockplacemods.py +++ b/blockplacemods.py @@ -1,5 +1,6 @@ from helpers import * from basecommands import simplecommand +import org.bukkit.event.block.BlockBreakEvent as BlockBreakEvent denyslabcorrection = open_json_file("denyslabcorrection", []) #Players that don't want slabs corrected denyautofill = open_json_file("denyautocauldronfill", []) @@ -109,10 +110,7 @@ def on_interact(event): if event.hasItem() and not str(event.getItem().getType()) == "REDSTONE": return block = event.getClickedBlock() - if str(block.getType()) == "CAULDRON" and block.getData() > 0: + event2 = BlockBreakEvent(block, player) + server.getPluginManager().callEvent(event2) + if not event2.isCancelled() and str(block.getType()) == "CAULDRON" and block.getData() > 0: block.setData(block.getData() - 1) #Lower water level by one - - - - - From ad9de19d5da0030621573939c9dbb817e3e866d1 Mon Sep 17 00:00:00 2001 From: Dico200 Date: Wed, 29 Apr 2015 17:12:39 +0200 Subject: [PATCH 2/5] right clicking empty cauldron fills it --- blockplacemods.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/blockplacemods.py b/blockplacemods.py index 4f0dc2d..a8f15d8 100644 --- a/blockplacemods.py +++ b/blockplacemods.py @@ -112,5 +112,9 @@ def on_interact(event): block = event.getClickedBlock() event2 = BlockBreakEvent(block, player) server.getPluginManager().callEvent(event2) - if not event2.isCancelled() and str(block.getType()) == "CAULDRON" and block.getData() > 0: - block.setData(block.getData() - 1) #Lower water level by one + data = block.getData() + if not event2.isCancelled() and str(block.getType()) == "CAULDRON": + if data > 0: + block.setData(data - 1) #Lower water level by one + else: + block.setData(3) #Set water level back to 3 From 37dc80305fe870c564daa5603eb35ea627969ca8 Mon Sep 17 00:00:00 2001 From: Dico200 Date: Fri, 1 May 2015 21:46:24 +0200 Subject: [PATCH 3/5] More blockplacemods Trying to make it place an item (in this case 1 piece of redstone dust) in a furnace. I know that it creates the ItemStack correctly, I know that in this case .getInventory() returns an instance of FurnaceInventory and I know that .update() is returning True meaning it updated the blockstate successfully. However, the item is not appearing in the furnace. Any idea why? --- blockplacemods.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/blockplacemods.py b/blockplacemods.py index a8f15d8..87bac71 100644 --- a/blockplacemods.py +++ b/blockplacemods.py @@ -1,6 +1,9 @@ from helpers import * from basecommands import simplecommand import org.bukkit.event.block.BlockBreakEvent as BlockBreakEvent +import org.bukkit.block.Furnace as Furnace +import org.bukkit.inventory.ItemStack as ItemStack +import org.bukkit.Material as Material denyslabcorrection = open_json_file("denyslabcorrection", []) #Players that don't want slabs corrected denyautofill = open_json_file("denyautocauldronfill", []) @@ -94,11 +97,15 @@ def on_block_place(event): return uuid = uid(player) block = event.getBlockPlaced() - if uuid not in denyslabcorrection and str(block.getType()) in ("WOOD_STEP", "STEP") and block.getData() < 8: + material = str(block.getType()) + if uuid not in denyslabcorrection and material in ("WOOD_STEP", "STEP") and block.getData() < 8: block.setData(block.getData() + 8) # Flip upside down - elif uuid not in denyautofill and str(block.getType()) == "CAULDRON": + elif uuid not in denyautofill and material == "CAULDRON": block.setData(3) #3 layers of water, 3 signal strength - + elif material == "FURNACE": + state = block.getState() + state.getInventory().setSmelting(ItemStack(Material.REDSTONE)) + state.update() @hook.event("player.PlayerInteractEvent", "monitor") def on_interact(event): @@ -114,7 +121,4 @@ def on_interact(event): server.getPluginManager().callEvent(event2) data = block.getData() if not event2.isCancelled() and str(block.getType()) == "CAULDRON": - if data > 0: - block.setData(data - 1) #Lower water level by one - else: - block.setData(3) #Set water level back to 3 + block.setData(data - 1 if data > 0 else 3) From eaf0f41746b027ae1951679f2c2824a1ab6502ba Mon Sep 17 00:00:00 2001 From: Dico200 Date: Tue, 5 May 2015 16:50:48 +0200 Subject: [PATCH 4/5] Revert "use https for ipinfo.io" This reverts commit 62569c736148aae34c9bafbfceb1033b88871daf. --- check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check.py b/check.py index 90faa53..2129a3b 100644 --- a/check.py +++ b/check.py @@ -11,7 +11,7 @@ from helpers import * # receive info based on the user's IP. information provided by ipinfo.io def ip_info(player): if player.isOnline(): - return json.load(urllib2.urlopen("https://ipinfo.io%s/json" % str(player.getAddress().getAddress()))) + return json.load(urllib2.urlopen("http://ipinfo.io%s/json" % str(player.getAddress().getAddress()))) else: return {} From 6865e2c3b9142a6ec6ea1a425daffb3814c2d965 Mon Sep 17 00:00:00 2001 From: Dico200 Date: Tue, 5 May 2015 16:50:55 +0200 Subject: [PATCH 5/5] Revert "show network AS in /check" This reverts commit 181c6ccfeb04f5030f0230dce93b8a76c43ecc56. --- check.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/check.py b/check.py index 2129a3b..8bbfdeb 100644 --- a/check.py +++ b/check.py @@ -42,6 +42,11 @@ def get_website_data(player): return ("http://redstoner.com/users/%s" % results[0][0], results[0][1]) if results else (None, None) +# receive country based on the user's IP +def get_country(data): + return str(data.get("country")) + + def get_all_names(player): uuid = str(uid(player)).replace("-", "") names = json.load(urllib2.urlopen("https://api.mojang.com/user/profiles/%s/names" % uuid)) @@ -64,8 +69,7 @@ def get_all_data(sender, player): msg(sender, "&6> Website account: &e%s" % website[0]) msg(sender, "&6> email: &e%s" % website[1]) msg(sender, "&7 -- Data provided by ipinfo.io") - msg(sender, "&6> Country: &e%s" % str(data.get("country"))) - msg(sender, "&6> Network: &e%s" % str(data.get("org"))) + msg(sender, "&6> Country: &e%s" % get_country(data)) msg(sender, "&7 -- Data provided by Mojang") msg(sender, "&6> All ingame names used so far: &e%s" % get_all_names(player)) except: