MCPresentator 1.2.9

Create and display image/animations on arrays of maps

  1. ShortCircuit908
    MCPresentator

    Everyone loves good mapart, right? Throw down some blocks and hang that colorful map on the wall. Trouble is, it's a lot of effort, and you can't always get it looking just right. On top of that, once you map it, you're stuck with that until you tear it all down and build another piece of pixel art.
    Or maybe, you're a plugin developer looking for an innovative way to display information to players. You want a nice graphical display, but you can't find a good way to do implement one?

    No longer! With MCPresentator, you can display any image on any size of screen, without the need to build anything in-game first!

    This plugin functions as both a standalone and an API for developers. Using in-game commands, users can download images from the Internet, create animations with multiple frames, and display those animations on a pleasing rectangle of maps, or rather, a screen! Developers can access these screens and animations to display anything on an existing screen, or even create new ones!


    So why use MCPresentator?
    There's already a host of plugins that allow you to display images on maps. So why should you use this one?

    Animations
    This plugin allows you to do more than just display static images. You can bring your art to life by stringing any number of images together to create an animation!
    Efficient map usage
    When the plugin is used to display an image on a map, it renders that map unusable for normal mapping. To reduce problems associated with this, the plugin keeps track of the maps it uses, and re-uses them for new screens before using new maps.

    Low resource usage
    Images are processed and cached, which greatly reduces the load on your server. In addition, the images are rendered onto the maps themselves only when necessary, further cutting down on load.
    Image processing
    To produce the best results, this plugin converts images to use a color palette compatible with maps. This is done through a process called "dithering." The difference dithering makes is huge, and you can see examples below.

    Undithered:
    25_5x2_undithered.png
    Dithered:
    25_5x2_dithered.png
    Undithered:
    28_5x2_undithered.png
    Dithered:
    28_5x2_dithered.png


    Dependencies

    This plugin requires ShortUtils to be installed

    Commands
    This is a simple list. For information on each command, type /help <command> while in-game. All commands require the permissions node mcpresentator.use
    • /screen
    • /frame
    • /animation
    • /fetch-image
    • /preview-image
    • /image-cache
    • /image-delete
    Creating screens is an easy task. For this tutorial, let's assume you want a screen that is four block wide by two blocks tall. The first thing you need to do is get the screen ready. To do this, simply place a 4x2 array of item frames on any surface, like this:
    screen_tut_2.png
    Once that's done, run the command /screen <width> <height> where <width> is the width of the screen in blocks, and <height> is the height of the screen in blocks. This drops you into the screen builder. From there, it will ask you to right-click the first item frame. Please note that the item frames MUST be empty first. You must click on each item frame you want to include in the screen. The order in which you click them matters, so you must make sure you're going in the right order. The order flows from bottom left to top right, as seen here:
    screen_tut_0.png
    Once you have selected all the item frames, you will get a message and the item frames will fill with maps and display a default image:
    screen_tut_1.png
    Congratulations! Your screen is set up!
    The next thing you need are some images to show on the screen! Fetching images is as simple as running the command /image-fetch <url> where <url> is a direct link to the image you want to download. Please note that it must be a direct link. www.example.com will not work, but www.example.com/image.png will. Also note that you may use animated GIF images, but they will be split into individual frames after downloading.
    Now that you've got some cool images, you want to display those images on it. To do that, you need an animation. But to create an animation, you need frames. Frames are simply a pairing of an image and the amount of time the image should stay on the screen. Remember the number you were given when you downloaded the image? This is where you use it: /frame create <image id> <delay> where <image id> is the numerical ID of the image you want to use, and <delay> is the number of server ticks the image should be displayed for, before moving on to the next frame. If <frame delay> is less than or equal to zero, the animation will stop on that frame without displaying any subsequent frames.
    Great! Now you have some frames to use! All you have to do now is string those frames together into an animation! To start, run the command /animation. This will place you into the animation builder. From there, you may add and remove frames to include in the animation. Type frame add <frame id> in chat to add a frame, and type frame remove <frame index> to remove a frame. Once you're done, type build into chat.
    You're on the last leg of the journey, now! The last thing you need to do is tell the screen which animation you want it to display. To do this, you'll need the numerical ID of the animation you want to use. Once you've got that, run the command: /animation set <screen id> <animation id>. If you've done everything right, the animation will start playing on the screen! Congratulations!
    That's right, ladies and gentlemen! This plugin comes complete with a small web server, which displays all currently available images! To access it, use your favorite browser to navigate to the address http://<your-server-address>:<port>. By default, <your-server-address> is the IP address the server is bound to, and <port> is 8080, although this may be changed in the config files. For example, if I was hosting a server with the address mc.example.com, the default webserver address would be http://mc.example.com:8080.

    This plugin is provided free-of-charge, but if you like it, please consider donating!
    ahfudo and Lazo like this.

Recent Updates

  1. Compatibility fix
  2. Little things
  3. Update checking!

Recent Reviews

  1. Kylan28
    Kylan28
    5/5,
    Version: 1.2.9
    This is an absolutely awesome plugin. It should probably be a must-have for any server.

    I have a couple of issues though. Basically: How do I remove screens, animations, images and so on, so that they are not cluttering the id list for nothing?

    Other than that, a fantastic job.
    1. ShortCircuit908
      Author's Response
      I'm very glad that you enjoy my plugin!

      As for your questions:
      Screens are removed using "/screen remove <id>"
      Frames are removed using "/frame remove <id>"
      Images are deleted using "/image-delete <id>"
  2. marek327
    marek327
    5/5,
    Version: 1.2.3
    Cool!!! :)

    This is verry good, stay uploading newest versions, this seen verry good.
    Good luck, and HAVE FUNN!!! YEEHA.
  3. Bolean
    Bolean
    5/5,
    Version: 1.0.1
    wowow nice work thanks .
    1. ShortCircuit908
      Author's Response
      Thank you! I'm glad you like it!