Skip to content
This repository has been archived by the owner on Dec 28, 2022. It is now read-only.

A plugin that makes it so If a faction shield is placed in a faction claim, any enemies in that faction's land are asked to leave!

Notifications You must be signed in to change notification settings

MinecraftFreelance/FactionShield

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Author banner

AUTHOR - BillyDotWS LinkedIn Version



FactionShield

This is a spigot plugin with a native spigot version of 1.18.2. It requires FactionsUUID & Space (not included) to run.

This plugin works by introducing a placeable block (via Space). If a faction shield block is placed in any faction claim, factions designated as an enemy (using /f enemy [name]) have 20 seconds (this time is configurable) to get out of the land, otherwise they will be killed. This plugin allows all messages to be configured and adds a configurable amount of time to escape.

You can view an example of how this plugin works here

⚠️ Notice

This plugin was made public due to a chargeback filed against it by BingChlling#0001 / 965716021321293894, you are welcome to modify it and use it as you wish (including resale). I will not provide any support/updates for this plugin.

🗒️ Road Map

  • Replace the neutron generator belt with a custom machine
  • When someone enters faction land, if the faction has a shield machine, give them x seconds to leave.
  • Make the messages customisable (including the title screen, death message etc)

⚙️ Configuration Options

This plugin is configurable based on the client requirements: config.yaml is generated automatically and has the following configurable options:

escape_time: 20 # the amount of time players are given to escape

messages.yaml is generated automatically and has the following configurable options:

placed_shield: '&eYou have placed a shield! &cEnemy factions will be punished!' # message sent when a shield is placed
not_in_faction: '&cYou are not in a faction, join one to be able to place this!' # player is not in a faction
not_your_land: '&cYou cannot place this outside of your land!' # not the faction of the player's land
warning_chat_message: '&c{{faction}} has a shield enabled! &eYou will die in {{time}} if you don''t escape!' # warning message
death_message: '&cWell, you were warned, don''t come back!' # message once the person dies
delete_message: '&7Your faction shield at &e{{location}} &7has been destroyed!' # a message sent to all faction members when a shield is deleted
title: 
  title: '&c&l{{remaining_time}}' # the title (big message) on a player's screen
  subtitle: '&7Exit this land, or die!' # the subtitle (little message) on a player's screen

🛠️ Tools Used

Multiple tools have been used during development to speed up development and keep things neat!

  • CheckStyle has been used to create well formatted, consistent code (and enforce final usage)
  • IntelliJ IDEA has been used to code the plugin, as it offers great plugin support!

👣 Versioning

Whilst developing this plugin, I have used Semantic versioning for the current versions of the plugin, see the list of created versions so far!. I have created an automatic versioning system that automatically increments the version (see .github/workflows/release.yaml), this automatically increases the version every time a commit is made to the main branch of this repository.

🏗️ Building the plugin

First of all - input the dependency jars into a folder called /libs (Space.jar and Factions.jar - as these are premium plugins, they are not included within this repository).

This plugin is automatically versioned using a GitHub action (as mentioned above), in order to build the plugin. You will also need to create the following environment variables, this is automatically assigned when forking the repository:

  • RELEASE_VERSION: the release version (e.g. 1.0.0)
  • GITHUB_REF_NAME: the branch that is being built (e.g. stage)
  • GITHUB_RUN_NUMBER: the current build number (e.g. 1)
  • BUILD_PATH: the location on your machine to put the jar

This Spigot plugin is built using maven, using the provided pom.xml file.

mvn build

This will create a jar file in the defined directory of the repository (discussed above), this can be used to put into the /plugins folder.

About

A plugin that makes it so If a faction shield is placed in a faction claim, any enemies in that faction's land are asked to leave!

Resources

Stars

Watchers

Forks

Languages