[Plugin Request][Formatted] TrackerTrails

Discussion in 'Archived: Plugin Requests' started by Zoroark173, Feb 9, 2013.

  1. Offline

    Zoroark173

    Plugin category: [MECH]

    Suggested name: TrackerTrails, Hunter

    What I want: The main idea for this plugin is that when a player steps on certain block, it registers information about them (their tracks), and people can later recall that info. When a player steps on a block, it records info. Blocks record different types of info based on how you moved on that block. (This should all be configurable)
    • If you walk on the block, it records the name of the player who walked on it, and the time that they walked on it. It also has a slight chance of "trampling" the block
    • If they ran on the block, it records the name of the player who walked on it, the time that they walked on it, their "shoes", and the direction that they were going. It has a medium chance of "trampling" the block, and a slight chance of "trampling" the blocks directly surrounding it.
    • If a player jumped on a block below fall damage height, it records the name of the player who jumped on it, the time that they jumped on it, and their "shoes". It has a high chance of "trampling" the the block, and a medium chance of "trampling" the blocks directly surrounding it.
    • If a player jumped on a block above fall damage height, it records the name of the player who jumped on it, the time that they jumped on it, their "shoes", and the direction that they went. It will "trample" the block, and has a high chance of "trampling" the blocks directly surrounding it.
    • If a player is sneaking across, it will not register their tracks. And if a person tp'd away, logged off, covered their tracks, went to a non-track recording block, etc. it says "Dead End"
    Also, players will be able to cover their tracks (remove their latest track). To do this, a player must right-click on the track block with bonemeal (configurable), and it will erase their track from that block!
    Now, to recall the info, the player just needs to left-click the block with a stone hoe, and it will tell them the info on the tracks on a block based on their permissions and the type of movement that was performed on the block.

    When tracks are stored on a block, the block can only store the 8 most recent tracks on it (configurable), and if a new track is made on a block, the oldest one is cleared. Also, if a player tries to make more than 2 tracks on a block (configurable), their oldest one is replaced (regardless of if there are older tracks). After 14 Minecraft days, a track disappears, but if it snows on a block, and it then becomes covered with snow it "protects" the tracks, until the snow melts. Also rain makes the tracks instantly clear.

    One more feature of this would be Tracking level. At first, even though 8 tracks are stored on the block, the oldest 6 are unreadable, the one after that is "corrupted", and the newest one is readable (configurable). After they read 100 different tracks (configurable), their tracking levels. When a tracking level levels up to 2, you can read the 2 newest ones, the 3rd one is "corrupted", and the rest are unreadable, then level 3 is the first three readable, the 4th on "corrupted", and the rest unreadable, etc. A "corrupted" track makes random pieces of the track turn into the magic font (The one seen in the credits after beating the Enderdragon), I.e.- Name: S%ev% Time: 1%:%% PM, Type of Tracks: Wa%%in%

    The trampling thing that I mentioned earlier will turn the block into a "trampled" state, and sometimes destroys certain blocks.

    List of track recording blocks and how they trample:
    Grass- Tramples into dirt. Destroys any saplings/wheat/tall grass/flowers etc. on trample.
    Dirt- Doesn't trample
    Sand- Tramples into sandstone. Destroys any cacti/dead grass/etc. on trample.
    Sandstone- Doesn't trample
    Snow- Doesn't trample
    Soulsand- Doesn't trample

    TL;DR- When players go on blocks, they leave tracks which can be discovered by another player. Most blocks don't leave tracks except for "natural blocks" and a few others. Can trample blocks.

    Ideas for commands:
    /Trackertrails - Base plugin command, alias is /tt, /trails, or /trails
    /trackertrails remove {name} - Removes all Tracks of specified person, or yours if left blank
    /trackertrails toggle {name} - Toggles if specified person (you if left blank) makes trails or not

    Ideas for permissions:
    trackertrails.leave - Permission to leave trails
    trackertrails.leave.trample - Permission to allow trampling
    trackertrails.toggle - Permission to toggle trails
    trackertrails.see - Permission to see trails
    trackertrails.see.all - Permission to see all trails, regardless of tracker level
    trackertrails.see.level.X - Permission to be able to automatically be able to X level trails

    When I'd like it by: I understand that this is a very big request, but all I need is it done, even if it takes a while, I'd be good!
     
  2. Offline

    ben657

    This sounds like a cool idea, but my only concern is that it'd be a massive amount of data to store... Certainly too much for a flatfile to stay quick. So a mySQL database would be needed.

    But if you would like, I'll start on this once my current project is done, which shouldn't be more than a couple of days. :)
     
  3. Offline

    Zoroark173

    Thanks! That would be great! BTW- How exactly does mySQL/SQLite work?
     
  4. Offline

    ben657

    It's a little different for each. With mySQL, you would need to host a mySQL database server, which the plugin would access remotely via a username, password and host IP you put in the config. On the other hand, an SQLite database is stored locally, and accessed from there. The main difference is that a mySQL db can store and retrieve much more data, much faster than an SQLite db. If your server is hosted by a company, you can usually ask them for a mySQL db and they'll set one up. Generally free or at least very cheap :)
     
  5. Offline

    Zoroark173

    Ok, but how is a database that is stored remotely faster than a local flat file/SQLite? Sorry for all my questions :p
     
  6. Offline

    ben657

    Honestly... I have no clue :p you'd have to ask a database designer that :) I know how to use them, not really how they work ^^
     

Share This Page