The complete guide to CrackShotPlus - DeeCaaD/CrackShotPlus_V2 GitHub Wiki

Modules

Other

Getting started

Strings and lists

If node is asking string or list it is always necessary to put it into brackets.
For example node is asking this Message_To_Shooter: <String> so you put it like Message_To_Shooter: "My message to shooter" not like this Message_To_Shooter: My message to shooter.

Double

If node is asking double it is always necessary to put it's value like some of these examples 0.05, 1.695, 1.0 and so on...

Integer

If node is asking integer it is always necessary to put it's value like some of these examples 7, 1, 51 and so on...

Boolean

If node is asking boolean it is always necessary to put it's value to true or false.

Frequently Asked Questions

Are you developer of CrackShot?

No, Im not developer of CrackShot. CrackShot's developer is Shampaggon and CrackShotPlus developer is DeeCaaD. We don't work together, I have simply created an addon for Shampaggon's CrackShot plugin.

Do I need CrackShot for this to work?

Yes. CrackShotPlus is an addon for CrackShot so you need them both.

Where do I put CrackShotPlus modules?

CrackShotPlus modules goes into CrackShotPlus own folder. CrackShot modules goes into CrackShot own folder.

CrackShotPlus fails to load?

You don't have CrackShot

  • Install CrackShot

You are running wrong version

  • Make sure you are running right version.

Else you need to contact DeeCaaD in CrackShotPlus discussions.

CrackShotPlus configurations fails to load?

Same reason as in CrackShot.

How can I get CrackShotPlus weapons?

You can't. They're same weapons as CrackShot weapons. Basically if you add something in CrackShotPlus folder for weapon "Grenade" it will automatically added for CrackShot's "Grenade".

Where is CrackShotPlus's resource pack?

CrackShotPlus's resource pack is inside CrackShotPlus.jar. It generates itself into CrackShotPlus folder if Generate_Resource_Pack is true in basic.yml.
Resource pack is free and its included inside CrackShotPlus.jar. If you want the resource pack only you can just ask it from DeeCaaD. Resource pack is made by Nullblox.

Permissions

  • List of permissions

    • csp.reload
    • csp.use.all
    • csp.attachment.all
    • csp.ammo.all
    • csp.visualreload.all
    • csp.trail.all
    • csp.skin.all
    • csp.see.killfeed
    • csp.heldparticle.all
    • csp.itemless.all
  • List of permissions granted by default

    • csp.use.all
    • csp.attachment.all
    • csp.ammo.all
    • csp.visualreload.all
    • csp.trail.all
    • csp.skin.all
    • csp.see.killfeed
    • csp.heldparticle.all
      • Because those permissions are granted by default you must negate them incase you want to specify which weapons your players can use.
      • Negating permissions is easy, simply add that same permission, but with dash. Ex. -csp.use.all
  • In this example player wouldn't be able to use any other skin expect Blue and Red because -csp.skin.all permission is added to negate default granted permission csp.skin.all.

permissions:
- -csp.skin.all
- csp.skin.Blue
- csp.skin.Red 
  • csp.reload
    • Reloading CrackShotPlus, getting notification from updates, reloading plugin (admin commands)... etc.
  • csp.use.(weaponName/all)
    • Being able to use weapon's features.
  • csp.attachment.(attachmentName/all)
    • Being able to add attachments for weapon.
  • csp.ammo.(weaponName/all)
    • Being able to remove ammo for weapon.
  • csp.visualreload.(visualReloadName/all)
    • Being able to change visual reload and use current one.
    • Note: If player doesn't have permissions for visual reload he will have Default_Visual_Reload visual reload.
  • csp.trail.(trailName/all)
    • Being able to change trail and use current one.
    • Note: If player doesn't have permissions for trail he will have Default_Trail trail.
  • csp.skin.(skinName/all)
    • Being able to change skin and use current one.
    • Note: If player doesn't have permissions for skin he will have Default_Skin skin.
  • csp.see.killfeed
    • Being able to see killfeed.
  • csp.heldparticle.all
    • Being able to use held particles
  • csp.itemless.all
    • Being able to detach, remove ammo and repair weapon using command

CrackShotPlus API

CSPapi class

Inside CSPapi class you'll find few usefull methods

ItemStack getAttachmentItemStack(String attachment)

ItemStack addAttachment(ItemStack gun, String attachment)

ItemStack removeAttachment(ItemStack gun, String attachment)

boolean isAttachment(ItemStack attachment)

String[] getAttachmensAttachedToWeapon(ItemStack gun)

String[] getAttachmentsForWeapon(String weaponTitle)

double getWeaponCustomDurability(ItemStack gun)

void setDataForPlayer(Player player, String weaponTitle, DataType dataType, String newValue)

Integer getInteger(String configurationPath)

Double getDouble(String configurationPath)

String getString(String configurationPath)

List<String> getList(String configurationPath)

Boolean getBoolean(String configurationPath)

ItemStack updateItemStackFeatures(String weaponTitle, ItemStack gun, Player p)

ItemStack updateItemStackFeaturesNonPlayer(String weaponTitle, ItemStack gun)

WeaponAttachmentEvent

  • setCancelled() - Sets event's cancellation state.
  • isCancelled() - Returns event's cancellation state.
  • getWeaponTitle() - Returns event's weapon's weapon title.
  • getPlayer() - Returns event's player.
  • getItemStack() - Returns event's weapon as itemstack.
  • isAddingAttachment() - Returns true if adding attachment and false if detaching.
  • getAttachment() - Returns event's attachment name.

WeaponHeldEvent

  • getPlayer() - Returns event's player.
  • getItemStack() - Returns event's weapon as itemstack.
  • getWeaponTitle() - Returns event's weapon's weapon title.
  • getNewSlot() - Returns event's new slot.

WeaponKillEvent

  • getKiller() - Returns event's killer.
  • getKilled() - Returns event's killed.
  • getItemStack() - Returns event's weapon as itemstack.
  • getWeaponTitle() - Returns event's weapon's weapon title.

WeaponNoKnockbackEvent

  • setCancelled() - Sets event's cancellation state.
  • isCancelled() - Returns event's cancellation state.
  • getEntity() - Returns event's victim from which knockback is going to be "removed".
  • getWeaponTitle() - Returns event's weapon's weapon title.
  • isPlayers() - Returns true if event is for players.
  • isMobs()- Returns true if event is for mobs.

WeaponPreReloadEvent

  • getPlayer() - Returns event's player.
  • getWeaponTitle() - Returns event's weapon's weapon title.

WeaponSecondScopeEvent

  • setCancelled() - Sets event's cancellation state.
  • isCancelled() - Returns event's cancellation state.
  • getPlayer() - Returns event's player.
  • getWeaponTitle() - Returns event's weapon's weapon title.
  • setSecondZoomAmount() - Sets event's second zoom amount.
  • getSecondZoomAmount()- Returns event's second zoom amount.
  • getSlot() - Returns event's player held slot.
  • isZoomIn() - Returns true if zooming second scope in.

WeaponSkinEvent

  • setCancelled() - Sets event's cancellation state.
  • isCancelled() - Returns event's cancellation state.
  • getWeaponTitle() - Returns event's weapon's weapon title.
  • getPlayer() - Returns event's player.
  • getSkin() - Returns event's skin.
    • getSkinType() - Returns skin type (NORMAL, SCOPE or RELOAD)
    • getSkinName() - Returns skin name
    • setItemType() - Set new item type for skin
    • setDurability() - Set new durability for skin
    • setCustomModelData() - Set new custom model data for skin
  • getAttachments() - Returns attachments in weapon during skin update

WeaponPickupEvent

  • setCancelled() - Sets event's cancellation state.
  • isCancelled() - Returns event's cancellation state.
  • getWeaponTitle() - Returns event's weapon's weapon title.
  • getPlayer() - Returns event's player.
  • getItemStack() - Returns event's weapon as itemstack.

WeaponBreakBlockEvent

  • setCancelled() - Sets event's cancellation state.
  • isCancelled() - Returns event's cancellation state.
  • getWeaponTitle() - Returns event's weapon's weapon title.
  • getPlayer() - Returns event's player.
  • getBlock() - Returns event's block being breaked as block.

NBT tags used by CSP

All NBT tags added by CSP are in string

CSP_Durability

  • CSP custom durability (as string)

Attachments

  • List of attachments in string (attachment1,attachment2,attachment3,etc...,)

Identification

  • Every CSP created item has this, basically using this you can identify what item it is from CSP (configuration name)

detachitem

  • Its there if item can detach attachments using it

ammoremoveitem

  • Its there if item can remove ammo using it

weaponrepairitem

  • Its there if item can repair weapon (CSP custom durability) using it

StatTrak

  • Contains amount of kills using that weapon (as string)

CSP_Soulbound

  • Contains UUID (as string) of soulbounded player

List Of Particles

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html
Note: Keep in mind that that is latest minecraft version's particle type list.

List Of Entity Types

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html
Note: Keep in mind that that is latest minecraft version's entity type list.

List Of Potion Effect Types

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
Note: Keep in mind that that is latest minecraft version's potion effect type list.

⚠️ **GitHub.com Fallback** ⚠️