From 5893cfc0b4950758ba1077b2047a5a288e899cf5 Mon Sep 17 00:00:00 2001 From: AMinecraftDev Date: Tue, 9 Oct 2018 22:32:35 +0800 Subject: [PATCH] 3.0.0-SNAPSHOT-U23 + Completed Boss Debug Command + Begun work on GUIs --- backup.yml | 726 +++++++++++++++++ plugin-modules/Core/resources-yml/editor.yml | 742 +----------------- .../custombosses/CustomBosses.java | 4 +- .../commands/boss/BossDebugCmd.java | 35 +- .../custombosses/managers/DebugManager.java | 31 + .../custombosses/utils/Message.java | 7 +- .../custombosses/utils/Permission.java | 1 + 7 files changed, 826 insertions(+), 720 deletions(-) create mode 100644 backup.yml create mode 100644 plugin-modules/Core/src/net/aminecraftdev/custombosses/managers/DebugManager.java diff --git a/backup.yml b/backup.yml new file mode 100644 index 0000000..15aabf4 --- /dev/null +++ b/backup.yml @@ -0,0 +1,726 @@ +MainPanel: + name: '&cPlease choose one...' + slots: 9 + Items: + '1': + type: '383:54' + name: '&6&lCustom Bosses' + lore: + - '&eLeft Click »' + - '&fEdit any of the already created' + - '&fcustom bosses.' + - '&7' + - '&eRight Click »' + - '&fCreate a new custom boss from' + - '&fscratch.' + Button: Bosses + '3': + type: 12 + name: '&6&lAuto Spawns' + lore: + - '&eLeft Click »' + - '&fEdit any of the already created' + - '&fauto spawns.' + - '&7' + - '&eRight Click »' + - '&fCreate a new auto spawn from' + - '&fscratch.' + Button: AutoSpawns + '5': + type: 101 + name: '&6&lDrop Tables' + lore: + - '&eLeft Click »' + - '&fEdit any of the already created' + - '&fdrop tables.' + - '&7' + - '&eRight Click »' + - '&fCreate a new drop table from' + - '&fscratch.' + Button: DropTables + '7': + type: 50 + name: '&6&lCustom Items' + lore: + - '&eLeft Click »' + - '&fEdit any of the already created' + - '&fcustom items.' + - '&7' + - '&eRight Click »' + - '&fCreate a new custom item from' + - '&fan item in your inventory.' + Button: CustomItems + '9': + type: 101 + name: '&6&lCustom Skills' + lore: + - '&eLeft Click »' + - '&fEdit any of the already created' + - '&fcustom skills.' + - '&7' + - '&eRight Click »' + - '&fCreate a new custom skill from' + - '&fscratch.' + Button: CustomSkills +MainPanel: + name: '&b&l{boss} Editor' + slots: 45 + Settings: + emptySpaceFiller: true + EmptySpaceFiller: + type: '160:0' + name: '&7' + Items: + '12': + type: DIAMOND + name: '&c&lDrops Manager' + lore: + - '&7Click here to manage the drop table' + - '&7that is attached to this boss.' + Button: Drops + '14': + type: DIAMOND_HELMET + name: '&c&lEquipment Manager' + lore: + - '&7Click here to manage the equipment' + - '&7that the boss has equipped.' + Button: Equipment + '16': + type: BONE + name: '&a&lTargeting Manager' + lore: + - '&7Click here to edit how the boss handles' + - '&7targeting of players and mobs.' + Button: Targeting + '22': + type: BOW + name: '&c&lWeapon Manager' + lore: + - '&7Click here to manage the weapon(s)' + - '&7that the boss has equipped.' + Button: Weapon + '23': + type: BARRIER + name: '&c&l!&4&l!&c&l! &4&lWARNING &c&l!&4&l!&c&l!' + lore: + - '&7While editing is enabled for this boss' + - '&7no one will be able to spawn it, nor' + - '&7will it spawn naturally.' + '24': + type: BLAZE_POWDER + name: '&c&lSkill Manager' + lore: + - '&7Click here to manage the assigned' + - '&7skill(s) the boss has and their occurrence' + - '&7chances.' + Button: Skill + '32': + type: '351:4' + name: '&a&lStatistics Manager' + lore: + - '&7Click here to edit the statistics of the' + - '&7boss, including things like: health,' + - '&7potion effects, commands on spawn, etc.' + Button: Stats + '39': + type: REDSTONE + name: '&a&lParticle Manager' + lore: + - '&7Click here to manage the particles the' + - '&7boss has equipped during certain events.' + Button: Particle + '41': + type: GRASS + name: '&a&lSpawning Manager' + lore: + - '&7Click here to edit how the boss handles' + - '&7spawning.' + Button: Spawning + '43': + type: BOOK + name: '&a&lText Manager' + lore: + - '&7Click here to edit the taunts, sayings,' + - '&7etc. for this boss.' + Button: Text +DropsPanel: + name: '&b&l{boss} Editor' + slots: 54 + Settings: + fillTo: 45 + Items: + '46': + type: DIAMOND + name: '&b&lSelected Drop Table' + lore: + - '&7The current selected drop' + - '&7table is: &b{dropTable}&7.' + - '&7' + - '&b&lHints' + - '&b&l* &7If this shows N/A it means' + - '&7 there was an issue loading the' + - '&7 previous table, or it doesn''t' + - '&7 have one selected.' + - '&b&l* &7Click here to go straight to the' + - '&7 editing screen of the drop table.' + '47': + type: STAINED_GLASS_PANE + name: '&7' + '48': + type: STAINED_GLASS_PANE + name: '&7' + '49': + type: ARROW + name: '&e&l&m<-&e&l Previous Page' + lore: + - '&7Click here to go to the previous' + - '&7page of drop tables.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + PreviousPage: true + '50': + type: DIAMOND_BLOCK + name: '&a&lCreate a new Drop Table' + lore: + - '&7Click here to create a new drop' + - '&7table. It will automatically be' + - '&7assigned to this boss when created.' + Button: CreateDropTable + '51': + type: ARROW + name: '&e&lNext Page &e&l&m->' + lore: + - '&7Click here to go to the next' + - '&7page of drop tables.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + NextPage: true + '52': + type: STAINED_GLASS_PANE + name: '&7' + '53': + type: STAINED_GLASS_PANE + name: '&7' + '54': + type: BOOK + name: '&c&lDrops Guide' + lore: + - '&7When selecting the drop table for this custom boss' + - '&7you can either choose from one of the above listed' + - '&7pre-configured drop tables or you can make a' + - '&7new one for this boss.' + - '&7' + - '&c&lHints' + - '&c&l* &7The currently selected drop table will be shown' + - '&7 with an emerald which states so.' + - '&c&l* &7Every d rop table from every boss will be listed' + - '&7 here as an available drop table.' +EquipmentPanel: + name: '&b&l{boss} Editor' + slots: 9 + Settings: + backButton: true + emptySpaceFiller: true + EmptySpaceFiller: + type: '160:0' + name: '&7' + Buttons: + BackButton: 9 + Items: + '2': + type: DIAMOND_HELMET + name: '&c&lHelmet' + lore: + - '&7Click here to change the' + - '&7helmet for the &f{boss}' + - '&7or add one from your' + - '&7inventory.' + Button: Helmet + '3': + type: DIAMOND_CHESTPLATE + name: '&c&lChestplate' + lore: + - '&7Click here to change the' + - '&7chestplate for the &f{boss}' + - '&7or add one from your' + - '&7inventory.' + Button: Chestplate + '4': + type: DIAMOND_LEGGINGS + name: '&c&lLeggings' + lore: + - '&7Click here to change the' + - '&7leggings for the &f{boss}' + - '&7or add one from your' + - '&7inventory.' + Button: Leggings + '5': + type: DIAMOND_BOOTS + name: '&c&lBoots' + lore: + - '&7Click here to change the' + - '&7boots for the &f{boss}' + - '&7or add one from your' + - '&7inventory.' + Button: Boots + '8': + type: PAPER + name: '&e&lGo Back' + lore: + - '&7Click here to go back.' + '9': + type: BOOK + name: '&c&lEquipment Guide' + lore: + - '&7here you can choose what equipment' + - '&7this boss has. To choose simply click' + - '&7the desired piece, then click one of' + - '&7the preset pieces or click the diamond' + - '&7block to add a new piece from your' + - '&7inventory.' +HelmetPanel: + name: '&b&l{boss} Editor' + slots: 54 + Settings: + fillTo: 45 + backButton: true + Buttons: + BackButton: 54 + Items: + '46': + type: DIAMOND + name: '&c&lRemove' + lore: + - '&7click here to remove the' + - '&7currently equipped helmet.' + Button: Remove + '47': + type: STAINED_GLASS_PANE + name: '&7' + '48': + type: STAINED_GLASS_PANE + name: '&7' + '49': + type: ARROW + name: '&e&l&m<-&e&l Previous Page' + lore: + - '&7Click here to go to the previous' + - '&7page of helmets.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + PreviousPage: true + '50': + type: DIAMOND_BLOCK + name: '&a&lAdd New Helmet' + lore: + - '&7Click here to add a new' + - '&7helmet which you have in your' + - '&7inventory.' + Button: AddNew + '51': + type: ARROW + name: '&e&lNext Page &e&l&m->' + lore: + - '&7Click here to go to the next' + - '&7page of helmets.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + NextPage: true + '52': + type: STAINED_GLASS_PANE + name: '&7' + '53': + type: STAINED_GLASS_PANE + name: '&7' + '54': + type: PAPER + name: '&e&lGo Back' + lore: + - '&7Click here to go back.' +ChestplatePanel: + name: '&b&l{boss} Editor' + slots: 54 + Settings: + fillTo: 45 + backButton: true + Buttons: + BackButton: 54 + Items: + '46': + type: DIAMOND + name: '&c&lRemove' + lore: + - '&7click here to remove the' + - '&7currently equipped chestplate.' + Button: Remove + '47': + type: STAINED_GLASS_PANE + name: '&7' + '48': + type: STAINED_GLASS_PANE + name: '&7' + '49': + type: ARROW + name: '&e&l&m<-&e&l Previous Page' + lore: + - '&7Click here to go to the previous' + - '&7page of chestplates.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + PreviousPage: true + '50': + type: DIAMOND_BLOCK + name: '&a&lAdd New Chestplate' + lore: + - '&7Click here to add a new' + - '&7chestplate which you have in your' + - '&7inventory.' + Button: AddNew + '51': + type: ARROW + name: '&e&lNext Page &e&l&m->' + lore: + - '&7Click here to go to the next' + - '&7page of chestplates.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + NextPage: true + '52': + type: STAINED_GLASS_PANE + name: '&7' + '53': + type: STAINED_GLASS_PANE + name: '&7' + '54': + type: PAPER + name: '&e&lGo Back' + lore: + - '&7Click here to go back.' +LeggingsPanel: + name: '&b&l{boss} Editor' + slots: 54 + Settings: + fillTo: 45 + backButton: true + Buttons: + BackButton: 54 + Items: + '46': + type: DIAMOND + name: '&c&lRemove' + lore: + - '&7click here to remove the' + - '&7currently equipped {type}.' + Button: Remove + '47': + type: STAINED_GLASS_PANE + name: '&7' + '48': + type: STAINED_GLASS_PANE + name: '&7' + '49': + type: ARROW + name: '&e&l&m<-&e&l Previous Page' + lore: + - '&7Click here to go to the previous' + - '&7page of leggings.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + PreviousPage: true + '50': + type: DIAMOND_BLOCK + name: '&a&lAdd New Leggings' + lore: + - '&7Click here to add a new' + - '&7leggings which you have in your' + - '&7inventory.' + Button: AddNew + '51': + type: ARROW + name: '&e&lNext Page &e&l&m->' + lore: + - '&7Click here to go to the next' + - '&7page of leggings.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + NextPage: true + '52': + type: STAINED_GLASS_PANE + name: '&7' + '53': + type: STAINED_GLASS_PANE + name: '&7' + '54': + type: PAPER + name: '&e&lGo Back' + lore: + - '&7Click here to go back.' +BootsPanel: + name: '&b&l{boss} Editor' + slots: 54 + Settings: + fillTo: 45 + backButton: true + Buttons: + BackButton: 54 + Items: + '46': + type: DIAMOND + name: '&c&lRemove' + lore: + - '&7click here to remove the' + - '&7currently equipped {type}.' + Button: Remove + '47': + type: STAINED_GLASS_PANE + name: '&7' + '48': + type: STAINED_GLASS_PANE + name: '&7' + '49': + type: ARROW + name: '&e&l&m<-&e&l Previous Page' + lore: + - '&7Click here to go to the previous' + - '&7page of boots.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + PreviousPage: true + '50': + type: DIAMOND_BLOCK + name: '&a&lAdd New Boots' + lore: + - '&7Click here to add a new' + - '&7boots which you have in your' + - '&7inventory.' + Button: AddNew + '51': + type: ARROW + name: '&e&lNext Page &e&l&m->' + lore: + - '&7Click here to go to the next' + - '&7page of boots.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + NextPage: true + '52': + type: STAINED_GLASS_PANE + name: '&7' + '53': + type: STAINED_GLASS_PANE + name: '&7' + '54': + type: PAPER + name: '&e&lGo Back' + lore: + - '&7Click here to go back.' +TargetingPanel: + name: '&b&l{boss} Editor' + slots: 27 + Settings: + backButton: true + emptySpaceFiller: true + EmptySpaceFiller: + type: '160:0' + name: '&7' + Buttons: + BackButton: 27 + Items: + '5': + type: REDSTONE_BLOCK + name: '&e&lSpawner' + lore: + - '&7This target system will only' + - '&7target the player who spawned' + - '&7the boss.' + TargetingSystem: Spawner + '12': + type: REDSTONE_BLOCK + name: '&e&lLast Damage' + lore: + - '&7This target system will' + - '&7target the last player that' + - '&7damaged the boss and update' + - '&7every time someone hits the' + - '&7boss.' + TargetingSystem: LastDamage + '16': + type: REDSTONE_BLOCK + name: '&e&lTop Damage' + lore: + - '&7This target system will' + - '&7target the player who has' + - '&7the most damage that is' + - '&7nearby.' + TargetingSystem: TopDamage + '23': + type: BOOK + name: '&c&lTargeting Guide' + lore: + - '&7Here you can choose how' + - '&7the boss handles targeting' + - '&7of players.' + '27': + type: PAPER + name: '&e&lGo Back' + lore: + - '&7Click here to go back.' +WeaponPanel: + name: '&b&l{boss} Editor' + slots: 9 + Settings: + backButton: true + emptySpaceFiller: true + EmptySpaceFiller: + type: '160:0' + name: '&7' + Buttons: + BackButton: 9 + Items: + '1': + type: BOOK + name: '&c&lWeapons Guide' + lore: + - '&7here you can choose what weapons' + - '&7this boss has. To choose simply click' + - '&7the desired hand, then click one of' + - '&7the preset weapons or click the diamond' + - '&7block to add a new weapon from your' + - '&7inventory.' + '4': + type: DIAMOND_SWORD + name: '&c&lMain Hand' + lore: + - '&7Click here to modify the' + - '&7main hand for the &f{boss}&7.' + Button: MainHand + '6': + type: SHIELD + name: '&c&lOff Hand' + lore: + - '&7Click here to modify the' + - '&7off hand for the &f{boss}&7.' + Button: OffHand + '9': + type: PAPER + name: '&e&lGo Back' + lore: + - '&7Click here to go back.' +MainHandPanel: + name: '&b&l{boss} Editor' + slots: 54 + Settings: + fillTo: 45 + backButton: true + Buttons: + BackButton: 54 + Items: + '46': + type: DIAMOND + name: '&c&lRemove' + lore: + - '&7click here to remove the' + - '&7currently equipped main hand.' + Button: Remove + '47': + type: STAINED_GLASS_PANE + name: '&7' + '48': + type: STAINED_GLASS_PANE + name: '&7' + '49': + type: ARROW + name: '&e&l&m<-&e&l Previous Page' + lore: + - '&7Click here to go to the previous' + - '&7page of weapons.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + PreviousPage: true + '50': + type: DIAMOND_BLOCK + name: '&a&lAdd New Weapon' + lore: + - '&7Click here to add a new' + - '&7weapon which you have in your' + - '&7inventory.' + Button: AddNew + '51': + type: ARROW + name: '&e&lNext Page &e&l&m->' + lore: + - '&7Click here to go to the next' + - '&7page of weapons.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + NextPage: true + '52': + type: STAINED_GLASS_PANE + name: '&7' + '53': + type: STAINED_GLASS_PANE + name: '&7' + '54': + type: PAPER + name: '&e&lGo Back' + lore: + - '&7Click here to go back.' +OffHandPanel: + name: '&b&l{boss} Editor' + slots: 54 + Settings: + fillTo: 45 + backButton: true + Buttons: + BackButton: 54 + Items: + '46': + type: DIAMOND + name: '&c&lRemove' + lore: + - '&7click here to remove the' + - '&7currently equipped off hand.' + Button: Remove + '47': + type: STAINED_GLASS_PANE + name: '&7' + '48': + type: STAINED_GLASS_PANE + name: '&7' + '49': + type: ARROW + name: '&e&l&m<-&e&l Previous Page' + lore: + - '&7Click here to go to the previous' + - '&7page of weapons.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + PreviousPage: true + '50': + type: DIAMOND_BLOCK + name: '&a&lAdd New Weapon' + lore: + - '&7Click here to add a new' + - '&7weapon which you have in your' + - '&7inventory.' + Button: AddNew + '51': + type: ARROW + name: '&e&lNext Page &e&l&m->' + lore: + - '&7Click here to go to the next' + - '&7page of weapons.' + - '&7' + - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + NextPage: true + '52': + type: STAINED_GLASS_PANE + name: '&7' + '53': + type: STAINED_GLASS_PANE + name: '&7' + '54': + type: PAPER + name: '&e&lGo Back' + lore: + - '&7Click here to go back.' \ No newline at end of file diff --git a/plugin-modules/Core/resources-yml/editor.yml b/plugin-modules/Core/resources-yml/editor.yml index 9669ee9..dffa526 100644 --- a/plugin-modules/Core/resources-yml/editor.yml +++ b/plugin-modules/Core/resources-yml/editor.yml @@ -12,729 +12,51 @@ # Buttons: # buttons section # # BackButton: 9 # back button slot # # ExitButton: 9 # exit button slot # -MainPanel: - name: '&cPlease choose one...' - slots: 9 - Items: - '1': - type: '383:54' - name: '&6&lCustom Bosses' - lore: - - '&eLeft Click »' - - '&fEdit any of the already created' - - '&fcustom bosses.' - - '&7' - - '&eRight Click »' - - '&fCreate a new custom boss from' - - '&fscratch.' - Button: Bosses - '3': - type: 12 - name: '&6&lAuto Spawns' - lore: - - '&eLeft Click »' - - '&fEdit any of the already created' - - '&fauto spawns.' - - '&7' - - '&eRight Click »' - - '&fCreate a new auto spawn from' - - '&fscratch.' - Button: AutoSpawns - '5': - type: 101 - name: '&6&lDrop Tables' - lore: - - '&eLeft Click »' - - '&fEdit any of the already created' - - '&fdrop tables.' - - '&7' - - '&eRight Click »' - - '&fCreate a new drop table from' - - '&fscratch.' - Button: DropTables - '7': - type: 50 - name: '&6&lCustom Items' - lore: - - '&eLeft Click »' - - '&fEdit any of the already created' - - '&fcustom items.' - - '&7' - - '&eRight Click »' - - '&fCreate a new custom item from' - - '&fan item in your inventory.' - Button: CustomItems - '9': - type: 101 - name: '&6&lCustom Skills' - lore: - - '&eLeft Click »' - - '&fEdit any of the already created' - - '&fcustom skills.' - - '&7' - - '&eRight Click »' - - '&fCreate a new custom skill from' - - '&fscratch.' - Button: CustomSkills -MainPanel: - name: '&b&l{boss} Editor' - slots: 45 +EditorList: + name: '&6CustomBosses &eEditor' + slots: 54 Settings: - emptySpaceFiller: true - EmptySpaceFiller: - type: '160:0' - name: '&7' + backButton: true + fillTo: 45 + Buttons: + backButton: 50 Items: - '12': - type: DIAMOND - name: '&c&lDrops Manager' + '46': + type: GLASS_PANE + name: '&7' + '47': + type: GLASS_PANE + name: '&7' + '48': + type: GLASS_PANE + name: '&7' + '49': + type: ARROW + name: '&e&l&m<-&e&l Previous Page' lore: - - '&7Click here to manage the drop table' - - '&7that is attached to this boss.' - Button: Drops - '14': - type: DIAMOND_HELMET - name: '&c&lEquipment Manager' - lore: - - '&7Click here to manage the equipment' - - '&7that the boss has equipped.' - Button: Equipment - '16': - type: BONE - name: '&a&lTargeting Manager' - lore: - - '&7Click here to edit how the boss handles' - - '&7targeting of players and mobs.' - Button: Targeting - '22': - type: BOW - name: '&c&lWeapon Manager' - lore: - - '&7Click here to manage the weapon(s)' - - '&7that the boss has equipped.' - Button: Weapon - '23': - type: BARRIER - name: '&c&l!&4&l!&c&l! &4&lWARNING &c&l!&4&l!&c&l!' - lore: - - '&7While editing is enabled for this boss' - - '&7no one will be able to spawn it, nor' - - '&7will it spawn naturally.' - '24': - type: BLAZE_POWDER - name: '&c&lSkill Manager' - lore: - - '&7Click here to manage the assigned' - - '&7skill(s) the boss has and their occurrence' - - '&7chances.' - Button: Skill - '32': - type: '351:4' - name: '&a&lStatistics Manager' - lore: - - '&7Click here to edit the statistics of the' - - '&7boss, including things like: health,' - - '&7potion effects, commands on spawn, etc.' - Button: Stats - '39': + - '&7Click here to go to the previous' + - '&7page of custom drops.' + PreviousPage: true + '50': type: REDSTONE - name: '&a&lParticle Manager' + name: '&cClick here to go back' lore: - - '&7Click here to manage the particles the' - - '&7boss has equipped during certain events.' - Button: Particle - '41': - type: GRASS - name: '&a&lSpawning Manager' - lore: - - '&7Click here to edit how the boss handles' - - '&7spawning.' - Button: Spawning - '43': - type: BOOK - name: '&a&lText Manager' - lore: - - '&7Click here to edit the taunts, sayings,' - - '&7etc. for this boss.' - Button: Text -DropsPanel: - name: '&b&l{boss} Editor' - slots: 54 - Settings: - fillTo: 45 - Items: - '46': - type: DIAMOND - name: '&b&lSelected Drop Table' - lore: - - '&7The current selected drop' - - '&7table is: &b{dropTable}&7.' - - '&7' - - '&b&lHints' - - '&b&l* &7If this shows N/A it means' - - '&7 there was an issue loading the' - - '&7 previous table, or it doesn''t' - - '&7 have one selected.' - - '&b&l* &7Click here to go straight to the' - - '&7 editing screen of the drop table.' - '47': - type: STAINED_GLASS_PANE - name: '&7' - '48': - type: STAINED_GLASS_PANE - name: '&7' - '49': - type: ARROW - name: '&e&l&m<-&e&l Previous Page' - lore: - - '&7Click here to go to the previous' - - '&7page of drop tables.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - PreviousPage: true - '50': - type: DIAMOND_BLOCK - name: '&a&lCreate a new Drop Table' - lore: - - '&7Click here to create a new drop' - - '&7table. It will automatically be' - - '&7assigned to this boss when created.' - Button: CreateDropTable + - '&7Click this button to go back to' + - '&7the main page where you can choose' + - '&7to configure blocks or mobs.' '51': type: ARROW name: '&e&lNext Page &e&l&m->' lore: - '&7Click here to go to the next' - - '&7page of drop tables.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' + - '&7page of custom drops.' NextPage: true '52': - type: STAINED_GLASS_PANE + type: GLASS_PANE name: '&7' '53': - type: STAINED_GLASS_PANE + type: GLASS_PANE name: '&7' '54': - type: BOOK - name: '&c&lDrops Guide' - lore: - - '&7When selecting the drop table for this custom boss' - - '&7you can either choose from one of the above listed' - - '&7pre-configured drop tables or you can make a' - - '&7new one for this boss.' - - '&7' - - '&c&lHints' - - '&c&l* &7The currently selected drop table will be shown' - - '&7 with an emerald which states so.' - - '&c&l* &7Every d rop table from every boss will be listed' - - '&7 here as an available drop table.' -EquipmentPanel: - name: '&b&l{boss} Editor' - slots: 9 - Settings: - backButton: true - emptySpaceFiller: true - EmptySpaceFiller: - type: '160:0' - name: '&7' - Buttons: - BackButton: 9 - Items: - '2': - type: DIAMOND_HELMET - name: '&c&lHelmet' - lore: - - '&7Click here to change the' - - '&7helmet for the &f{boss}' - - '&7or add one from your' - - '&7inventory.' - Button: Helmet - '3': - type: DIAMOND_CHESTPLATE - name: '&c&lChestplate' - lore: - - '&7Click here to change the' - - '&7chestplate for the &f{boss}' - - '&7or add one from your' - - '&7inventory.' - Button: Chestplate - '4': - type: DIAMOND_LEGGINGS - name: '&c&lLeggings' - lore: - - '&7Click here to change the' - - '&7leggings for the &f{boss}' - - '&7or add one from your' - - '&7inventory.' - Button: Leggings - '5': - type: DIAMOND_BOOTS - name: '&c&lBoots' - lore: - - '&7Click here to change the' - - '&7boots for the &f{boss}' - - '&7or add one from your' - - '&7inventory.' - Button: Boots - '8': - type: PAPER - name: '&e&lGo Back' - lore: - - '&7Click here to go back.' - '9': - type: BOOK - name: '&c&lEquipment Guide' - lore: - - '&7here you can choose what equipment' - - '&7this boss has. To choose simply click' - - '&7the desired piece, then click one of' - - '&7the preset pieces or click the diamond' - - '&7block to add a new piece from your' - - '&7inventory.' -HelmetPanel: - name: '&b&l{boss} Editor' - slots: 54 - Settings: - fillTo: 45 - backButton: true - Buttons: - BackButton: 54 - Items: - '46': - type: DIAMOND - name: '&c&lRemove' - lore: - - '&7click here to remove the' - - '&7currently equipped helmet.' - Button: Remove - '47': - type: STAINED_GLASS_PANE - name: '&7' - '48': - type: STAINED_GLASS_PANE - name: '&7' - '49': - type: ARROW - name: '&e&l&m<-&e&l Previous Page' - lore: - - '&7Click here to go to the previous' - - '&7page of helmets.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - PreviousPage: true - '50': - type: DIAMOND_BLOCK - name: '&a&lAdd New Helmet' - lore: - - '&7Click here to add a new' - - '&7helmet which you have in your' - - '&7inventory.' - Button: AddNew - '51': - type: ARROW - name: '&e&lNext Page &e&l&m->' - lore: - - '&7Click here to go to the next' - - '&7page of helmets.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - NextPage: true - '52': - type: STAINED_GLASS_PANE - name: '&7' - '53': - type: STAINED_GLASS_PANE - name: '&7' - '54': - type: PAPER - name: '&e&lGo Back' - lore: - - '&7Click here to go back.' -ChestplatePanel: - name: '&b&l{boss} Editor' - slots: 54 - Settings: - fillTo: 45 - backButton: true - Buttons: - BackButton: 54 - Items: - '46': - type: DIAMOND - name: '&c&lRemove' - lore: - - '&7click here to remove the' - - '&7currently equipped chestplate.' - Button: Remove - '47': - type: STAINED_GLASS_PANE - name: '&7' - '48': - type: STAINED_GLASS_PANE - name: '&7' - '49': - type: ARROW - name: '&e&l&m<-&e&l Previous Page' - lore: - - '&7Click here to go to the previous' - - '&7page of chestplates.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - PreviousPage: true - '50': - type: DIAMOND_BLOCK - name: '&a&lAdd New Chestplate' - lore: - - '&7Click here to add a new' - - '&7chestplate which you have in your' - - '&7inventory.' - Button: AddNew - '51': - type: ARROW - name: '&e&lNext Page &e&l&m->' - lore: - - '&7Click here to go to the next' - - '&7page of chestplates.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - NextPage: true - '52': - type: STAINED_GLASS_PANE - name: '&7' - '53': - type: STAINED_GLASS_PANE - name: '&7' - '54': - type: PAPER - name: '&e&lGo Back' - lore: - - '&7Click here to go back.' -LeggingsPanel: - name: '&b&l{boss} Editor' - slots: 54 - Settings: - fillTo: 45 - backButton: true - Buttons: - BackButton: 54 - Items: - '46': - type: DIAMOND - name: '&c&lRemove' - lore: - - '&7click here to remove the' - - '&7currently equipped {type}.' - Button: Remove - '47': - type: STAINED_GLASS_PANE - name: '&7' - '48': - type: STAINED_GLASS_PANE - name: '&7' - '49': - type: ARROW - name: '&e&l&m<-&e&l Previous Page' - lore: - - '&7Click here to go to the previous' - - '&7page of leggings.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - PreviousPage: true - '50': - type: DIAMOND_BLOCK - name: '&a&lAdd New Leggings' - lore: - - '&7Click here to add a new' - - '&7leggings which you have in your' - - '&7inventory.' - Button: AddNew - '51': - type: ARROW - name: '&e&lNext Page &e&l&m->' - lore: - - '&7Click here to go to the next' - - '&7page of leggings.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - NextPage: true - '52': - type: STAINED_GLASS_PANE - name: '&7' - '53': - type: STAINED_GLASS_PANE - name: '&7' - '54': - type: PAPER - name: '&e&lGo Back' - lore: - - '&7Click here to go back.' -BootsPanel: - name: '&b&l{boss} Editor' - slots: 54 - Settings: - fillTo: 45 - backButton: true - Buttons: - BackButton: 54 - Items: - '46': - type: DIAMOND - name: '&c&lRemove' - lore: - - '&7click here to remove the' - - '&7currently equipped {type}.' - Button: Remove - '47': - type: STAINED_GLASS_PANE - name: '&7' - '48': - type: STAINED_GLASS_PANE - name: '&7' - '49': - type: ARROW - name: '&e&l&m<-&e&l Previous Page' - lore: - - '&7Click here to go to the previous' - - '&7page of boots.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - PreviousPage: true - '50': - type: DIAMOND_BLOCK - name: '&a&lAdd New Boots' - lore: - - '&7Click here to add a new' - - '&7boots which you have in your' - - '&7inventory.' - Button: AddNew - '51': - type: ARROW - name: '&e&lNext Page &e&l&m->' - lore: - - '&7Click here to go to the next' - - '&7page of boots.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - NextPage: true - '52': - type: STAINED_GLASS_PANE - name: '&7' - '53': - type: STAINED_GLASS_PANE - name: '&7' - '54': - type: PAPER - name: '&e&lGo Back' - lore: - - '&7Click here to go back.' -TargetingPanel: - name: '&b&l{boss} Editor' - slots: 27 - Settings: - backButton: true - emptySpaceFiller: true - EmptySpaceFiller: - type: '160:0' - name: '&7' - Buttons: - BackButton: 27 - Items: - '5': - type: REDSTONE_BLOCK - name: '&e&lSpawner' - lore: - - '&7This target system will only' - - '&7target the player who spawned' - - '&7the boss.' - TargetingSystem: Spawner - '12': - type: REDSTONE_BLOCK - name: '&e&lLast Damage' - lore: - - '&7This target system will' - - '&7target the last player that' - - '&7damaged the boss and update' - - '&7every time someone hits the' - - '&7boss.' - TargetingSystem: LastDamage - '16': - type: REDSTONE_BLOCK - name: '&e&lTop Damage' - lore: - - '&7This target system will' - - '&7target the player who has' - - '&7the most damage that is' - - '&7nearby.' - TargetingSystem: TopDamage - '23': - type: BOOK - name: '&c&lTargeting Guide' - lore: - - '&7Here you can choose how' - - '&7the boss handles targeting' - - '&7of players.' - '27': - type: PAPER - name: '&e&lGo Back' - lore: - - '&7Click here to go back.' -WeaponPanel: - name: '&b&l{boss} Editor' - slots: 9 - Settings: - backButton: true - emptySpaceFiller: true - EmptySpaceFiller: - type: '160:0' - name: '&7' - Buttons: - BackButton: 9 - Items: - '1': - type: BOOK - name: '&c&lWeapons Guide' - lore: - - '&7here you can choose what weapons' - - '&7this boss has. To choose simply click' - - '&7the desired hand, then click one of' - - '&7the preset weapons or click the diamond' - - '&7block to add a new weapon from your' - - '&7inventory.' - '4': - type: DIAMOND_SWORD - name: '&c&lMain Hand' - lore: - - '&7Click here to modify the' - - '&7main hand for the &f{boss}&7.' - Button: MainHand - '6': - type: SHIELD - name: '&c&lOff Hand' - lore: - - '&7Click here to modify the' - - '&7off hand for the &f{boss}&7.' - Button: OffHand - '9': - type: PAPER - name: '&e&lGo Back' - lore: - - '&7Click here to go back.' -MainHandPanel: - name: '&b&l{boss} Editor' - slots: 54 - Settings: - fillTo: 45 - backButton: true - Buttons: - BackButton: 54 - Items: - '46': - type: DIAMOND - name: '&c&lRemove' - lore: - - '&7click here to remove the' - - '&7currently equipped main hand.' - Button: Remove - '47': - type: STAINED_GLASS_PANE - name: '&7' - '48': - type: STAINED_GLASS_PANE - name: '&7' - '49': - type: ARROW - name: '&e&l&m<-&e&l Previous Page' - lore: - - '&7Click here to go to the previous' - - '&7page of weapons.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - PreviousPage: true - '50': - type: DIAMOND_BLOCK - name: '&a&lAdd New Weapon' - lore: - - '&7Click here to add a new' - - '&7weapon which you have in your' - - '&7inventory.' - Button: AddNew - '51': - type: ARROW - name: '&e&lNext Page &e&l&m->' - lore: - - '&7Click here to go to the next' - - '&7page of weapons.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - NextPage: true - '52': - type: STAINED_GLASS_PANE - name: '&7' - '53': - type: STAINED_GLASS_PANE - name: '&7' - '54': - type: PAPER - name: '&e&lGo Back' - lore: - - '&7Click here to go back.' -OffHandPanel: - name: '&b&l{boss} Editor' - slots: 54 - Settings: - fillTo: 45 - backButton: true - Buttons: - BackButton: 54 - Items: - '46': - type: DIAMOND - name: '&c&lRemove' - lore: - - '&7click here to remove the' - - '&7currently equipped off hand.' - Button: Remove - '47': - type: STAINED_GLASS_PANE - name: '&7' - '48': - type: STAINED_GLASS_PANE - name: '&7' - '49': - type: ARROW - name: '&e&l&m<-&e&l Previous Page' - lore: - - '&7Click here to go to the previous' - - '&7page of weapons.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - PreviousPage: true - '50': - type: DIAMOND_BLOCK - name: '&a&lAdd New Weapon' - lore: - - '&7Click here to add a new' - - '&7weapon which you have in your' - - '&7inventory.' - Button: AddNew - '51': - type: ARROW - name: '&e&lNext Page &e&l&m->' - lore: - - '&7Click here to go to the next' - - '&7page of weapons.' - - '&7' - - '&7Currently viewing page &e{currentPage}/{maxPages}&7.' - NextPage: true - '52': - type: STAINED_GLASS_PANE - name: '&7' - '53': - type: STAINED_GLASS_PANE - name: '&7' - '54': - type: PAPER - name: '&e&lGo Back' - lore: - - '&7Click here to go back.' \ No newline at end of file + type: GLASS_PANE + name: '&7' \ No newline at end of file diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/CustomBosses.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/CustomBosses.java index 4da4417..398a539 100644 --- a/plugin-modules/Core/src/net/aminecraftdev/custombosses/CustomBosses.java +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/CustomBosses.java @@ -7,6 +7,7 @@ import net.aminecraftdev.custombosses.container.BossEntityContainer; import net.aminecraftdev.custombosses.file.BossesFileHandler; import net.aminecraftdev.custombosses.file.LangFileHandler; import net.aminecraftdev.custombosses.managers.BossCommandManager; +import net.aminecraftdev.custombosses.managers.DebugManager; import net.aminecraftdev.custombosses.managers.files.BossItemFileManager; import net.aminecraftdev.custombosses.managers.BossMechanicManager; import net.aminecraftdev.custombosses.managers.files.BossesFileManager; @@ -29,6 +30,7 @@ public class CustomBosses extends JavaPlugin implements IReloadable { @Getter private BossCommandManager bossCommandManager; @Getter private BossItemFileManager itemStackManager; @Getter private BossesFileManager bossesFileManager; + @Getter private DebugManager debugManager; @Getter private LangFileHandler langFileHandler; @Getter private FileConfiguration lang; @@ -44,7 +46,7 @@ public class CustomBosses extends JavaPlugin implements IReloadable { System.out.println("Boss API loaded (took " + (System.currentTimeMillis() - beginMs) + "ms)"); beginMs = System.currentTimeMillis(); - + this.debugManager = new DebugManager(); this.bossEntityContainer = new BossEntityContainer(); this.bossMechanicManager = new BossMechanicManager(this); diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/commands/boss/BossDebugCmd.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/commands/boss/BossDebugCmd.java index 9de476a..f72f22d 100644 --- a/plugin-modules/Core/src/net/aminecraftdev/custombosses/commands/boss/BossDebugCmd.java +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/commands/boss/BossDebugCmd.java @@ -1,8 +1,11 @@ package net.aminecraftdev.custombosses.commands.boss; -import net.aminecraftdev.custombosses.managers.files.BossesFileManager; +import net.aminecraftdev.custombosses.managers.DebugManager; +import net.aminecraftdev.custombosses.utils.Message; +import net.aminecraftdev.custombosses.utils.Permission; import net.aminecraftdev.custombosses.utils.command.SubCommand; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; /** * @author Charles Cullen @@ -11,21 +14,37 @@ import org.bukkit.command.CommandSender; */ public class BossDebugCmd extends SubCommand { - private BossesFileManager bossesFileManager; + private DebugManager debugManager; - public BossDebugCmd(BossesFileManager bossesFileManager) { + public BossDebugCmd(DebugManager debugManager) { super("debug"); - this.bossesFileManager = bossesFileManager; + this.debugManager = debugManager; } @Override public void execute(CommandSender sender, String[] args) { - StringBuilder stringBuilder = new StringBuilder(); + if(!Permission.debug.hasPermission(sender)) { + Message.Boss_Debug_NoPermission.msg(sender); + return; + } - this.bossesFileManager.getBossEntities().forEach((name, entity) -> stringBuilder.append(name).append(", ")); + if(!(sender instanceof Player)) { + Message.General_MustBePlayer.msg(sender); + return; + } - System.out.println("CURRENT BOSSES: " + - "\n" + stringBuilder.toString()); + Player player = (Player) sender; + String toggled; + + if(this.debugManager.isToggled(player.getUniqueId())) { + this.debugManager.togglePlayerOff(player.getUniqueId()); + toggled = "Off"; + } else { + this.debugManager.togglePlayerOn(player.getUniqueId()); + toggled = "On"; + } + + Message.Boss_Debug_Toggled.msg(player, toggled); } } diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/managers/DebugManager.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/managers/DebugManager.java new file mode 100644 index 0000000..2c36e21 --- /dev/null +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/managers/DebugManager.java @@ -0,0 +1,31 @@ +package net.aminecraftdev.custombosses.managers; + +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + +/** + * @author Charles Cullen + * @version 1.0.0 + * @since 09-Oct-18 + */ +public class DebugManager { + + private static Set toggledPlayers = new HashSet<>(); + + public void togglePlayerOn(UUID uuid) { + toggledPlayers.add(uuid); + } + + public void togglePlayerOff(UUID uuid) { + toggledPlayers.remove(uuid); + } + + public boolean isToggled(UUID uuid) { + return toggledPlayers.contains(uuid); + } + + public Set getToggledPlayers() { + return new HashSet<>(toggledPlayers); + } +} diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/Message.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/Message.java index 7d9e297..084a476 100644 --- a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/Message.java +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/Message.java @@ -15,6 +15,8 @@ import org.bukkit.inventory.ItemStack; */ public enum Message { + General_MustBePlayer("&c&l(!) &cYou must be a player to use this command."), + Boss_Create_EntityTypeNotFound("&c&l(!) &cThe specified entity type {0} was not found. If you think this is an error please contact &fAMinecraftDev&c."), Boss_Create_InvalidArgs("&c&l(!) &cYou must use &n/boss create [name] [entity] &c to create a boss."), Boss_Create_NameAlreadyExists("&c&l(!) &cA boss already exists with the name {0}."), @@ -23,11 +25,14 @@ public enum Message { Boss_Create_SomethingWentWrong("&c&l(!) &cSomething went wrong in the API class while finalising the boss creation."), Boss_Create_SuccessfullyCreated("&e&lCustomBosses &8» &7A boss has successfully been created with the name &f{0}&7 and the entity type &f{1}&7."), + Boss_Debug_NoPermission("&c&l(!) &cYou do not have access to this command."), + Boss_Debug_Toggled("&e&lCustomBosses &8» &7You have toggled debug mode for &fCustomBosses &7to {0}."), + Boss_Help_Page1( "&8&m----*--------&6&l[ &e&lBoss Help &7(Page 1) &6&l]&8&m--------*----\n" + "&e/boss help (page) &8» &7Displays boss commands.\n" + "&e/boss create [name] [entity] &8» &7Start the creation of a boss.\n" + - "&e/boss edit [name] &8» &7Edit the specified boss.\n" + + "&e/boss edit (name) &8» &7Edit the specified boss.\n" + "&e/boss info [name] &8» &7Shows information on the specified boss.\n" + "&e/boss nearby (radius) &8» &7Shows the nearby bosses.\n" + "&e/boss reload &8» &7Reloads the boss plugin.\n" + diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/Permission.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/Permission.java index 63c9422..866fa6b 100644 --- a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/Permission.java +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/Permission.java @@ -11,6 +11,7 @@ import org.bukkit.command.CommandSender; public enum Permission { create("boss.create"), + debug("boss.debug"), reload("boss.reload"); @Getter private String permission;