HomeJavaModsDebug Stick | Recreated from 1.13 | 1.8 - 1.12.2
Debug Stick | Recreated from 1.13 | 1.8 - 1.12.2
ModsJava

Debug Stick | Recreated from 1.13 | 1.8 - 1.12.2

⬇ Download on Spigot
About
This is recreated item from 1.13 minecraft version and functions almost like a real debug stick. You can modify item itself, change it to something else, as well as all messages and the main command. There is also added custom block states, such as wood and log types, and more. Supported from 1.8 to 1.12.2. About debug stick item you can find in official minecraft wikipedia.

Commands
Screenshots
Spoiler: Click
[​IMG]
[​IMG]
[​IMG]
[​IMG]

Known bugs
Note
To-Do
Default permissions
Permissions can be changed in configuration file.

Default Configuration
Spoiler: Config (added some comments)
Code (YAML):
config-version : 1
#If false, then plugin will not be enabled when server loads.
enabled
: true
#This will only apply to plugin when reloading or restarting server. To prevent for "duplicating" (because old command will not be unregistered), better restart server.
custom-command
: debugstick
item
:
  custom-name
: Debug Stick
  enchanted
: true
  #For materials check out https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
  material
: STICK
  data
: 0
  lores
: [ ]
  colored-lores
: true
allowed-worlds
:
  #If reversed, this will work as disallowed worlds.
  reverse
: true
  list
:
 - disabledworld
  bypass-permission
: true
allowed-gamemodes
:
  creative
: true
  survival
: false
  adventure
: false
use-actionbar
:
  changing-data
: true
  selecting-state
: true
  no-properties
: true
  no-such-state
: true
  no-permission
: false
  worldguard-no-permission
: false
  plotsquared-no-permission
: false
  error-messages
: true
  disabled-world
: false
#If false, then debugstick will act like normal item and "no permission" message will not be sent.
no-perm-messages
:
  default-modify
: false
  worldguard-modify
: true
  plotsquared-modify
: true
  disabled-world
: true
permissions
:
  modify
: debugstick.modify
  command-use
: debugstick.command.use
  command-give
: debugstick.command.give
  command-give-others
: debugstick.command.give.others
  command-reload
: debugstick.command.reload
  command-check-for-updates
: debugstick.command.update
  disabled-world-bypass
: debugstick.world. {world }
  plotsquared-modify-roads
: debugstick.modify.plots.roads
  plotsquared-modify-claimed-plots
: debugstick.modify.plots.claimed
  plotsquared-modify-unclaimed-plots
: debugstick.modify.plots.unclaimed
  plotsquared-modify-friend-plots
: debugstick.modify.plots.friend
  plotsquared-modify-owned-plots
: debugstick.modify.plots.owned
  worldguard-modify-bypass
: debugstick.worldguard.bypass

Default messages configuration
block-materials, block-states and block-data-values messages are randomly lined-up, because plugin uses automatic system.
Spoiler: Messages Config (generated from 1.12.2)
Code (YAML):

command
:
  no-arguments
: |-
    &6/ %command% give &o<player> &f- &eGives player a debug stick.
    &6/ %command% reload &f- &eReload config and messages.
    &6/ %command% update &f- &eChecks for updates, current &6%pluginversion%
  invalid-arguments
: '&cInvalid "%args%" arguments.'
  reloaded
: '&6DebugStick &eplugin reloaded in &6 %time%s &e!'
  player-is-offline
: '&cPlayer %target% is offline!'
  given-debugstick
: '&eGiven &6Debug Stick &eto &6 %target%'
  given-debugstick-to-yourself
: '&eGiven &6Debug Stick &eto &6you'
  update-available
: '&6 [DebugStick ] &eA new version was found : &6%newversion%'
  update-unavailable
: '&6 [DebugStick ] &cUnable to perform an update check.'
  latest-update
: '&6 [DebugStick ] &eYou are using the latest version.'
  checking-for-updates
: '&6 [DebugStick ] &eChecking for updates ...'
messages
:
  data-changed
: ' "%state%" to %blockdata%'
  selected-state
: Selected "%state%" ( %blockdata%)
  no-properties
: minecraft: %material% has no properties
  no-such-state
: minecraft: %material% has no state such as "%state%"
  no-permission
: '&cYou don''t have permission to do this.'
  plotsquared-cannot-modify-road
: '&cYou don''t have permission to modify roads.'
  plotsquared-cannot-modify-unclaimed-plot
: '&cYou don''t have permission to modify
    unclaimed plot.'
  plotsquared-cannot-modify-owned-plot
: '&cYou don''t have permission to modify your
    own plot.'
  plotsquared-cannot-modify-claimed-plot
: '&cYou don''t have permission to modify
    claimed plot.'
  plotsquared-cannot-modify-friends-plot
: '&cYou don''t have permission to modify
    your friend''s plot.'
  worldguard-no-permission
: '&cYou don''t have permission to modify in this region.'
  disabled-world
: '&cYou don''t have permission to modify in this world.'
  error-getting-next-state
: Something went wrong getting block's next state.
  error-getting-block-data
: 'Something went wrong getting block''s data, reason : %reason%'
  error-changing-data
: 'Something went wrong changing block''s data, reason : %reason%'
error-reasons
:
  block-missing
: block data is missing.
  version-not-supported
: version is not supported.
  state-missing
: state is missing.
block-materials
:
  red-shulker-box
: red_shulker_box
  dirt
: dirt
  ender-portal
: ender_portal
  black-shulker-box
: black_shulker_box
  end-rod
: end_rod
  magma
: magma
  red-glazed-terracotta
: red_glazed_terracotta
  nether-fence
: nether_fence
  lime-shulker-box
: lime_shulker_box
  light-blue-glazed-terracotta
: light_blue_glazed_terracotta
  snow
: snow
  spruce-fence-gate
: spruce_fence_gate
  smooth-brick
: smooth_brick
  water-lily
: water_lily
  redstone-torch-off
: redstone_torch_off
  coal-ore
: coal_ore
  spruce-door
: spruce_door
  cocoa
: cocoa
  light-blue-shulker-box
: light_blue_shulker_box
  melon-block
: melon_block
  stone-button
: stone_button
  end-gateway
: end_gateway
  jungle-wood-stairs
: jungle_wood_stairs
  bone-block
: bone_block
  glowstone
: glowstone
  brewing-stand
: brewing_stand
  vine
: vine
  emerald-ore
: emerald_ore
  tnt
: tnt
  redstone-lamp-on
: redstone_lamp_on
  red-mushroom
: red_mushroom
  log
: log
  orange-glazed-terracotta
: orange_glazed_terracotta
  soul-sand
: soul_sand
  crops
: crops
  chorus-plant
: chorus_plant
  wood-plate
: wood_plate
  red-nether-brick
: red_nether_brick
  air
: air
  dead-bush
: dead_bush
  redstone-comparator-on
: redstone_comparator_on
  diamond-block
: diamond_block
  web
: web
  workbench
: workbench
  bookshelf
: bookshelf
  prismarine
: prismarine
  blue-shulker-box
: blue_shulker_box
  iron-plate
: iron_plate
  barrier
: barrier
  burning-furnace
: burning_furnace
  redstone-ore
: redstone_ore
  observer
: observer
  mob-spawner
: mob_spawner
  quartz-stairs
: quartz_stairs
  yellow-shulker-box
: yellow_shulker_box
  note-block
: note_block
  gold-block
: gold_block
  ender-portal-frame
: ender_portal_frame
  ladder
: ladder
  wall-banner
: wall_banner
  detector-rail
: detector_rail
  nether-warts
: nether_warts
  grass
: grass
  piston-base
: piston_base
  smooth-stairs
: smooth_stairs
  purpur-block
: purpur_block
  magenta-glazed-terracotta
: magenta_glazed_terracotta
  redstone-wire
: redstone_wire
  trapped-chest
: trapped_chest
  birch-door
: birch_door
  birch-fence-gate
: birch_fence_gate
  wood-step
: wood_step
  diode-block-off
: diode_block_off
  bedrock
: bedrock
  double-stone-slab2
: double_stone_slab2
  purple-shulker-box
: purple_shulker_box
  lever
: lever
  netherrack
: netherrack
  iron-fence
: iron_fence
  dispenser
: dispenser
  brown-mushroom
: brown_mushroom
  red-rose
: red_rose
  yellow-glazed-terracotta
: yellow_glazed_terracotta
  brick
: brick
  sandstone
: sandstone
  acacia-stairs
: acacia_stairs
  end-bricks
: end_bricks
  magenta-shulker-box
: magenta_shulker_box
  activator-rail
: activator_rail
  beetroot-block
: beetroot_block
  cauldron
: cauldron
  cyan-glazed-terracotta
: cyan_glazed_terracotta
  gray-glazed-terracotta
: gray_glazed_terracotta
  packed-ice
: packed_ice
  log-2
: log_2
  jack-o-lantern
: jack_o_lantern
  sea-lantern
: sea_lantern
  lime-glazed-terracotta
: lime_glazed_terracotta
  cactus
: cactus
  furnace
: furnace
  stained-glass
: stained_glass
  quartz-ore
: quartz_ore
  slime-block
: slime_block
  long-grass
: long_grass
  birch-fence
: birch_fence
  chorus-flower
: chorus_flower
  skull
: skull
  green-shulker-box
: green_shulker_box
  red-sandstone
: red_sandstone
  fence
: fence
  command-repeating
: command_repeating
  acacia-fence-gate
: acacia_fence_gate
  piston-sticky-base
: piston_sticky_base
  leaves
: leaves
  obsidian
: obsidian
  cyan-shulker-box
: cyan_shulker_box
  iron-block
: iron_block
  cobble-wall
: cobble_wall
  white-shulker-box
: white_shulker_box
  mossy-cobblestone
: mossy_cobblestone
  gold-ore
: gold_ore
  ender-stone
: ender_stone
  cobblestone
: cobblestone
  leaves-2
: leaves_2
  hay-block
: hay_block
  jukebox
: jukebox
  sugar-cane-block
: sugar_cane_block
  pink-shulker-box
: pink_shulker_box
  purple-glazed-terracotta
: purple_glazed_terracotta
  standing-banner
: standing_banner
  acacia-fence
: acacia_fence
  structure-void
: structure_void
  powered-rail
: powered_rail
  piston-moving-piece
: piston_moving_piece
  soil
: soil
  sand
: sand
  gray-shulker-box
: gray_shulker_box
  diode-block-on
: diode_block_on
  bed-block
: bed_block
  monster-eggs
: monster_eggs
  wool
: wool
  mycel
: mycel
  command
: command
  fence-gate
: fence_gate
  pumpkin-stem
: pumpkin_stem
  dragon-egg
: dragon_egg
  gravel
: gravel
  enchantment-table
: enchantment_table
  portal
: portal
  nether-wart-block
: nether_wart_block
  pumpkin
: pumpkin
  purpur-pillar
: purpur_pillar
  double-step
: double_step
  wood
: wood
  anvil
: anvil
  jungle-fence-gate
: jungle_fence_gate
  ender-chest
: ender_chest
  sign-post
: sign_post
  orange-shulker-box
: orange_shulker_box
  redstone-torch-on
: redstone_torch_on
  dropper
: dropper
  flower-pot
: flower_pot
  iron-trapdoor
: iron_trapdoor
  lapis-ore
: lapis_ore
  daylight-detector
: daylight_detector
  trap-door
: trap_door
  chest
: chest
  sandstone-stairs
: sandstone_stairs
  concrete-powder
: concrete_powder
  snow-block
: snow_block
  stained-clay
: stained_clay
  cake-block
: cake_block
  clay
: clay
  quartz-block
: quartz_block
  torch
: torch
  rails
: rails
  carrot
: carrot
  thin-glass
: thin_glass
  redstone-lamp-off
: redstone_lamp_off
  brick-stairs
: brick_stairs
  iron-ore
: iron_ore
  concrete
: concrete
  black-glazed-terracotta
: black_glazed_terracotta
  dark-oak-door
: dark_oak_door
  redstone-comparator-off
: redstone_comparator_off
  brown-shulker-box
: brown_shulker_box
  ice
: ice
  frosted-ice
: frosted_ice
  hopper
: hopper
  pink-glazed-terracotta
: pink_glazed_terracotta
  cobblestone-stairs
: cobblestone_stairs
  stone-slab2
: stone_slab2
  white-glazed-terracotta
: white_glazed_terracotta
  red-sandstone-stairs
: red_sandstone_stairs
  blue-glazed-terracotta
: blue_glazed_terracotta
  melon-stem
: melon_stem
  piston-extension
: piston_extension
  wood-button
: wood_button
  glass
: glass
  birch-wood-stairs
: birch_wood_stairs
  beacon
: beacon
  wooden-door
: wooden_door
  acacia-door
: acacia_door
  carpet
: carpet
  structure-block
: structure_block
  jungle-door
: jungle_door
  purpur-slab
: purpur_slab
  nether-brick
: nether_brick
  yellow-flower
: yellow_flower
  green-glazed-terracotta
: green_glazed_terracotta
  stained-glass-pane
: stained_glass_pane
  stone-plate
: stone_plate
  grass-path
: grass_path
  hard-clay
: hard_clay
  silver-glazed-terracotta
: silver_glazed_terracotta
  daylight-detector-inverted
: daylight_detector_inverted
  emerald-block
: emerald_block
  coal-block
: coal_block
  glowing-redstone-ore
: glowing_redstone_ore
  huge-mushroom-2
: huge_mushroom_2
  huge-mushroom-1
: huge_mushroom_1
  spruce-fence
: spruce_fence
  purpur-double-slab
: purpur_double_slab
  dark-oak-stairs
: dark_oak_stairs
  potato
: potato
  jungle-fence
: jungle_fence
  lapis-block
: lapis_block
  wood-stairs
: wood_stairs
  double-plant
: double_plant
  iron-door-block
: iron_door_block
  spruce-wood-stairs
: spruce_wood_stairs
  sponge
: sponge
  wall-sign
: wall_sign
  sapling
: sapling
  step
: step
  purpur-stairs
: purpur_stairs
  tripwire-hook
: tripwire_hook
  brown-glazed-terracotta
: brown_glazed_terracotta
  wood-double-step
: wood_double_step
  dark-oak-fence
: dark_oak_fence
  nether-brick-stairs
: nether_brick_stairs
  gold-plate
: gold_plate
  diamond-ore
: diamond_ore
  stone
: stone
  redstone-block
: redstone_block
  silver-shulker-box
: silver_shulker_box
  command-chain
: command_chain
  dark-oak-fence-gate
: dark_oak_fence_gate
  tripwire
: tripwire
block-states
:
  check-decay
: check_decay
  north
: north
  south
: south
  attached
: attached
  age
: age
  open
: open
  nodrop
: nodrop
  moisture
: moisture
  explode
: explode
  east
: east
  variant
: variant
  extended
: extended
  shape
: shape
  west
: west
  delay
: delay
  decayable
: decayable
  damage
: damage
  layers
: layers
  eye
: eye
  wet
: wet
  part
: part
  half
: half
  power
: power
  has-record
: has_record
  type
: type
  conditional
: conditional
  level
: level
  facing
: facing
  disarmed
: disarmed
  mode
: mode
  lit
: lit
  seamless
: seamless
  color
: color
  axis
: axis
  powered
: powered
  stage
: stage
  bites
: bites
  rotation
: rotation
block-data-values
:
  red-sand
: red_sand
  brick
: brick
  east
: east
  subtract
: subtract
  smooth-sandstone
: smooth_sandstone
  east-west
: east_west
  ascending-east
: ascending_east
  chiseled-stonebrick
: chiseled_stonebrick
  brown
: brown
  ascending-south
: ascending_south
  cracked-stonebrick
: cracked_stonebrick
  load
: load
  orange
: orange
  cobblestone
: cobblestone
  double-fern
: double_fern
  head
: head
  north
: north
  granite
: granite
  chiseled
: chiseled
  center
: center
  mossy-brick
: mossy_brick
  all-inside
: all_inside
  stem
: stem
  up-z
: up_z
  y
: y
  chiseled-brick
: chiseled_brick
  z
: z
  default
: default
  yellow
: yellow
  syringa
: syringa
  prismarine-bricks
: prismarine_bricks
  lime
: lime
  double-rose
: double_rose
  ascending-west
: ascending_west
  smooth-granite
: smooth_granite
  black
: black
  x
: x
  up-x
: up_x
  down
: down
  south
: south
  top
: top
  lines z
: lines z
  poppy
: poppy
  pink-tulip
: pink_tulip
  west
: west
  cracked-brick
: cracked_brick
  all-stem
: all_stem
  bottom
: bottom
  magenta
: magenta
  coarse-dirt
: coarse_dirt
  red-sandstone
: red_sandstone
  data
: data
  lines x
: lines x
  sticky
: sticky
  smooth-red-sandstone
: smooth_red_sandstone
  south-east
: south_east
  green
: green
  chain
: chain
  'true'
: 'true'
  birch
: birch
  ascending-north
: ascending_north
  normal
: normal
  red-tulip
: red_tulip
  oxeye-daisy
: oxeye_daisy
  save
: save
  double-grass
: double_grass
  podzol
: podzol
  all-outside
: all_outside
  dirt
: dirt
  dark-oak
: dark_oak
  sand
: sand
  red
: red
  houstonia
: houstonia
  gray
: gray
  upper
: upper
  down-x
: down_x
  corner
: corner
  smooth-andesite
: smooth_andesite
  chiseled-red-sandstone
: chiseled_red_sandstone
  down-z
: down_z
  blue
: blue
  north-east
: north_east
  orange-tulip
: orange_tulip
  pink
: pink
  paeonia
: paeonia
  repeating
: repeating
  wood-old
: wood_old
  smooth-diorite
: smooth_diorite
  dead-bush
: dead_bush
  purple
: purple
  south-west
: south_west
  acacia
: acacia
  foot
: foot
  stone-brick
: stone_brick
  nether-brick
: nether_brick
  diorite
: diorite
  light-blue
: light_blue
  mossy-stonebrick
: mossy_stonebrick
  mossy-cobblestone
: mossy_cobblestone
  lower
: lower
  north-south
: north_south
  fern
: fern
  lines
: lines
  compare
: compare
  quartz
: quartz
  none
: none
  blue-orchid
: blue_orchid
  impulse
: impulse
  up
: up
  dark-prismarine
: dark_prismarine
  prismarine
: prismarine
  sunflower
: sunflower
  spruce
: spruce
  chiseled-sandstone
: chiseled_sandstone
  cyan
: cyan
  allium
: allium
  north-west
: north_west
  tall-grass
: tall_grass
  stonebrick
: stonebrick
  sandstone
: sandstone
  white
: white
  andesite
: andesite
  'false'
: 'false'
  oak
: oak
  jungle
: jungle
  silver
: silver
  white-tulip
: white_tulip
  stone
: stone

 

Placeholders
API Ready (v1.0)
Spoiler: API
  • Note: There is some changed between 1.0 and 1.1 as I remember, but I hope in the future I will update this to a current version ^_^
Useful methods
I have also created support for API. To change block data use this method from me.itstautvydas.debugstick.utils.DebugStickUtils class, it returns DataChanged instance (me.itstautvydas.debugstick.helpers).
Code (Java):
public static DataChanged changeBlockData (Block block, String state, Object value )
In some rare cases, I don't know if they would happen (as I don't think that I have made any mistakes), null can be returned

For getting block data, use these methods also from the same class as above. Can return null if specified block does not have such state (See #1 note)
Code (Java):
public static Object getBlockData (Block block, String state )
Code (Java):
public static Object dataReader ( byte data, Material material, String state )
When getting data, it can return -1, -2, -3 or -4 if for example state was not found. There is also a reader for that in the same class. data parameter is block data. If data is not negative number, then null will be returned.
Code (Java):
public static String readDataError ( Object data )
And also you can check if received block data has an error.
Code (Java):
public static boolean hasDataErrors ( Object data )
Negative integers meaning (italic text is what readDataError method returns):
  • -1 block missing (Block's enum is missing)
  • -2 state missing
  • -3 version not supported
  • -4 no such state
You can also manipulate click (me.itstautvydas.debugstick.DebugStick)
Code (Java):
public void manipulateClick (Player player, Location loc, boolean isShifting, Action action, boolean checkForPermissions )
But you would need to get instance from plugin instance (me.itstautvydas.debugstick.DebugStickPlugin), you can do that by casting or just using static get() method.
Code (Java):
public static DebugStickPlugin get ( )
Or you could just create your own debugstick instance.
Code (Java):
public DebugStick (DebugStickPlugin plg, HashMap < String, String > selectedState, HashMap < String, Material > selectedBlock )
selectedState and selectedBlock is where you save what player state and material have selected.

Events
There are 3 events. All events are in me.itstautvydas.debugstick.events package. Event DebugStickClickEvent is called before changing block's data. It can be cancalled.
Code (Java):
@EventHandler
public void beforeClick (DebugStickClickEvent event )
Event DebugStickBlockDataChangedEvent is called when block data changed.
Code (Java):
@EventHandler
public void dataChanged (DebugStickBlockDataChangedEvent event )
And the last one, event DebugStickClickedEvent is called after block data changed.
Code (Java):
@EventHandler
public void afterClick (DebugStickClickedEvent event )

Support
If you need any help or have any problems with the plugin, you can PM me. In the future, I might create a discord server for support, because I'm planning to make more plugins.
Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Debug Stick | Recreated from 1.13 | 1.8 - 1.12.2 is a free Minecraft Java mod. Compatible with Minecraft 1.8, 1.9, 1.10, 1.11 and newer. Downloaded 4,699 times (via Spigot). Download it and open it directly in the game.

Explore more