CurveCraft

Minecraft version of Curve Fever

Stats

CurveCraft is like Curve Fever (or CurveFever2). Players can play CurveCraft with joining a lobby, starting a game and playing with friends. The players spawning on horses that automatically move. Every player spawns planes while riding the horse. The last player which has not crashed the wall/border or a plane, has won the round. After reaching the needed point amount, the game is over and a new one can start in the arena.

At the arena can play 2 - 16 players. Each player has an other plane color, but be careful with the ground that every color is visible. Voting for an earlier start is possible.

Please note:

- Place the teleport point one higher than it should. That could fix teleport problems.


Features

  • Game mechanics of CurveFever
  • Lobby system
  • Players can vote to start the game erlier. (Game starts if everyone has voted)
  • Plugin API (event handling -> See github.com)
  • Signs to handle joining and leaving of the lobby, voting for start.
  • Command whitelist (per arena or global for all arenas)
  • A lot of fun
  • More features comming soon

Dependencies

  • iConomy 5 or iConomy6 or Vault or Register (later, not yet | not used)
  • PermissionsEX or bPermissions or GroupManager or BukkitPermissions

How to create an arena

First you need the permission CurveCraft.create, to execute the command "/cc create". Now execute the command and set the name of the arena with "/cc setname NAME". Now you have to define your arena. Choose two corners, so the plugin can calculate the area. If a player joins a lobby, the player spawns in a lobby room. Please define this location with "/cc setlobby". If a player crashs, he can spectate the the other players. Please define a teleport location with "/cc setend". If the game is over, all players will be teleportet to an other location. Please define it with "/cc setexit". Finish the arena with "/cc finish".

Please note:

  • Every arena has to be named different.
  • More settings can be found in the .yml file (plugins/CurveCraft/arena-saves/WORLD/ )
player:
  minplayer: 2 #if two players are in the lobby, they can start the game.
  maxplayer: 16 #at 16 players the game starts automatically
  playersCanVoteForStart: true #if false, minplayer is not used.
arena:
  name: test #name of the arena
  speed: 0.5 #speed of the horses -> higher, more difficult
  gap_length: 3 #size of the gaps, between planes
  gap_distance: 20 #how many space is between gaps
  timebeforegame: 10 #time in seconds before the game starts
  timebeforeround: 5 #time in seconds before a new round starts
  timeinvincible: 60  #time in server ticks -> player can not crash at the beginning of a round.
  corner1: -1198/8/636
  corner2: -1113/8/551
  lobbyloc: -1159/10/643
  endloc: -1159/10/643
  exitloc: -1159/14/643
  statussign: false #if a join sign is created the coordinates of it will occure here.
  lightning: true #weather a lightning bolt should flash on player crash
  commandwhitelist: true #weather a command whitelist should be used
  disabled: false #status of arena

How to create CurveCraft signs

To create a status / join sign:

[..] Can be anything

  1. [..]CurveCraft[..]
  2. [..]Join[..]
  3. ARENANAME

To create a lobbyview sign:

[..] Can be anything

  1. [..]CurveCraft[..]
  2. [..]LobbyView[..]
  3. ARENANAME

To create a "vote for start" sign:

[..] Can be anything

  1. [..]CurveCraft[..]
  2. [..]Start[..]
  3. ARENANAME

To create a leave sign:

[..] Can be anything

  1. [..]CurveCraft[..]
  2. [..]Leave[..]
  3. ARENANAME

Permission nodes

Note: You can edit them in the language.yml

ActionPermission node
Playe CCCurveCraft.play
Use help commandCurveCraft.help
Create new arenasCurveCraft.create
needed for privacy commandCurveCraft.user
plugin infoCurveCraft.version
Change arena statusCurveCraft.changestatus

Configuration

language: en #language -> language_en.yml must exist
autodownload: true #the plugin downloads the new plugin file to the plugin folder
installondownload: false #not implemented yet
updateCheck: true #plugin checks for a new version
senderrorreport: true #plugin sends error reports about fatal errors to the developer
senddebugfile: false #only the stacktrace is send. If this is true, the error log will be send too.
debug: false #more console output
debugfile: false
users_can_choose_privacy: false #according to the german law, I am only allowed to store personal data (like chat messages) in a file if I ask the person. This can be toggled here. If not activated, all data will be anonymized. 
UsePrefix: true #toggle prefix use
Prefix: CurveCraft #the prefix
PrefixColor: b #color of the [CurveCraft] prefix
TextColor: 6 #color of chat messages
updateIntervall: 30 #update check intervall
use_MySQL: false #not used
dbPath: localhost:3306/Paypassage #not used
dbUser: root #not used
dbPassword: root #not used
everyArenaOwnJoinPermission: false #admin can choose if the playe needs permission CurveCraft.join or CurveCraft.join.ARENANAME 
globalcommandwhitelist: false #if true the global command whitelist is active for all arenas where whitelist is enabled.

How to use the API

First, add this plugin as library to your project.

Now you create your own EventHandler:

import com.ibhh.CurveCraft.arena.APIHandler;
import com.ibhh.CurveCraft.arena.CCArena;
import com.ibhh.CurveCraft.arena.CCEventHandler;
import com.ibhh.CurveCraft.arena.CrashReason;
import com.ibhh.CurveCraft.arena.InvalidEventHandler;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.entity.Player;

/**
 *
 * @author ibhh
 */
public class ExampleEventHandler extends CCEventHandler {

    public ExampleEventHandler() {
        try {
            APIHandler.addHandler(this);
        } catch (InvalidEventHandler ex) {
            Logger.getLogger(ExampleEventHandler.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    

    @Override
    public void PlayerCrashedEvent(CCArena a, Player p, CrashReason r) {
    }

    @Override
    public void PlayerRoundWinEvent(CCArena a, Player p) {
    }

    @Override
    public void PlayerGameWinEvent(CCArena a, Player p, HashMap<Player, Integer> score, ArrayList<Player> lobby) {
    }

    @Override
    public void GameStartEvent(CCArena a) {
    }

    @Override
    public void RoundStartEvent(CCArena a) {
    }

    @Override
    public void PlayerJoinEvent(CCArena a, Player p) {
    }

    @Override
    public void PlayerLeaveEvent(CCArena a, Player p) {
    }
    
}

See Github.com for the documentation.

Sending of statistical data

This plugin uses mcstats.org to gather statistical data. The data is collected anonymously and ALL data is visible to everyone. Follow the link at the statistics banner and you'll see the collected data.

If you don't want any data to be sent, disable statistic sending in the Metrics folder/configuration.

  • Metrics:
    This plugin utilises Hidendra's plugin metrics system, which means that the following information is collected and sent to mcstats.org:
  • A unique identifier
  • The server's version of Java
  • Whether the server is in offline or online mode
  • The plugin's version
  • The server's version
  • The OS version/name and architecture
  • The core count for the CPU
  • The number of players online
  • The Metrics version
  • How many players played the game
  • How many games finished

Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true.

Debug files and error reports

This plugin creates debug files to make the finding of errors easier for me. If a error occurs the plugin may report it to me. All error reports are visible on my tracker. Klick here.

You can modify /disable this behavior in the configuration file. Set senddebugfile to false if you don't want to send debugfiles to me.

Set senderrorreport to false if you don't want to send any debug/errors to me. We are using our own bugtracker. It collects data that servers sent to us.

  • Data:
    • Version of the bukkit server
    • Version of the plugin
    • Stacktrace
    • Debuglog

The CurveCraft Team

profile avatar
  • 6
    Projects
  • 391.1K
    Downloads
Donate

More from _ForgeUser7921911View all

  • AnimalShop project image

    AnimalShop

    • 41.3K
    • Bukkit Plugins

    AnimalShop

    • 41.3K
    • February 17, 2015
    • Bukkit Plugins
    • +4
  • xpShop project image

    xpShop

    • 161.9K
    • Bukkit Plugins

    Player can buy and sell and send EXP (Register, iConomy5, iConomy6, Vault)

    • 161.9K
    • July 19, 2014
    • Bukkit Plugins
    • +4
  • Paypassage project image

    Paypassage

    • 1.2K
    • Bukkit Plugins

    Manage entry to a location with economy

    • 1.2K
    • May 9, 2013
    • Bukkit Plugins
    • +2
  • BookShop project image

    BookShop

    • 84.5K
    • Bukkit Plugins

    Players can publish their written books with a shop, so other players can purchase the written book.

    • 84.5K
    • May 3, 2013
    • Bukkit Plugins
    • +2
  • AnimalShop project image

    AnimalShop

    • 41.3K
    • Bukkit Plugins

    AnimalShop

    • 41.3K
    • February 17, 2015
    • Bukkit Plugins
    • +4
  • xpShop project image

    xpShop

    • 161.9K
    • Bukkit Plugins

    Player can buy and sell and send EXP (Register, iConomy5, iConomy6, Vault)

    • 161.9K
    • July 19, 2014
    • Bukkit Plugins
    • +4
  • Paypassage project image

    Paypassage

    • 1.2K
    • Bukkit Plugins

    Manage entry to a location with economy

    • 1.2K
    • May 9, 2013
    • Bukkit Plugins
    • +2
  • BookShop project image

    BookShop

    • 84.5K
    • Bukkit Plugins

    Players can publish their written books with a shop, so other players can purchase the written book.

    • 84.5K
    • May 3, 2013
    • Bukkit Plugins
    • +2