Search the Community
Showing results for tags 'image'.
-
Version 2.0.7
2,097 downloads
Create your own UI buttons for your rust server! Plugin comes with built ingame editor which makes creating proccess so much easier! • Features - Create as many buttons as you want. - Attach Images or Text to buttons. - Set chat commands to each button. - UI Editor ingame - Toggle hide function to create small gui menu. • Commands • Permissions • Config Example • Cui Data Example Special thanks to @SinKohhfor contributing and testing plugin before release.$7.50 -
Version 1.1.2
85 downloads
Image Manager is a sleek and powerful tool for developers, offering a lightweight alternative to ImageLibrary. Its unique handling and plugin-specific callbacks make it exceptionally easy to use. Console Command: imagemanager.reset // can only be ran from server console/terminal I don't allow use client side. Features: Error Handling: Outputs special debug info for devs when something fails. It's able to self repair when the server sv.files have been deleted but a wipe hasn't occurred or vice versa. Stores images with unique identifiers to ensure reliable retrieval/removal. If unity request fails retries with www instead. Optimized Request Management: Utilizes batch processing to handle image caching requests efficiently. Auto Remove Data that isn't used past x Days: Default = 30, 0 = disabled. Sets batch limits on Images: Default = 30 & Avatars can do 100 at a time per request using steam API key. Keeps Previous Wipe Data thus reducing the need to redo everything each wipe. Groups requests into batches to optimize resource use and reduce overhead. Manages large volumes of connections without sacrificing performance. Handles high volumes of image caching requests during server wipes or mass player reconnections. Processes and caches avatar images quickly with coroutine-based execution. Manages concurrent requests from multiple plugins simultaneously without conflicts or slowdowns. Maintains responsiveness and efficiency in dynamic server environments. Plugin Communication: In addition to its core functionality, the system includes special logic to facilitate communication between plugins. Each plugin calling the image caching system is notified when its batch of requests is ready or finished, allowing it to proceed with its logic without waiting for all requests to complete. This feature enhances the flexibility and usability of the system, ensuring smooth integration with various plugins and workflows. Plugin Communication Example For Images: // Plugin Calls!? Whaaa.. :P This works with all Adding hook calls in this plugin. // Example plugin: GUIShop [PluginReference] private Plugin ImageManager; private List<string> _pluginImages = new List<string>(); private Dictionary<string, string> _guishopImages = new Dictionary<string, string>(); private void OnServerInitialized() { // This will add the images to the filesystem list for the callback if (ImageManager != null && ImageManager.IsLoaded) ImageManager?.Call("AddImages", _pluginImages, FileStorage.Type.jpg, "GUIShop"); } // why do we need this!? OnPluginLoaded for reload situations, or when plugin wasn't loaded yet. private void OnPluginLoaded(Plugin name) { if (ImageManager != null && name.Name == ImageManager.Name & ImageManager.IsLoaded) { Puts("ImageManager has been detected and GUIShop Images are now being Processed"); // This will add the images to the filesystem list for the callback ImageManager?.Call("AddImages", _pluginImages, FileStorage.Type.jpg, "GUIShop"); } } // this would be your custom call-back ( Why use this!? Because it can actually be faster so you can continue your code logic quicker ) void ImageManagerGUIShop(Dictionary<string, string> images) { _guishopImages = images; // this returns the sent URL as the KEY with the image as the value. } // now down in your GUI / UI you can do this ( same for avatars except the key is ulong ) public void Pic(ref CuiElementContainer container, string parent, string name, string anchorMin, string anchorMax, string url) { CuiRawImageComponent rawImage = new CuiRawImageComponent(); rawImage.Png = _guishopImages[url]; container.Add(new CuiElement { Parent = parent, Name = name, Components = { rawImage, new CuiRectTransformComponent { AnchorMin = anchorMin, AnchorMax = anchorMax } } }); } Plugin Communication Example for Avatars / Image Combo: private HashSet<string> _storeImages = new HashSet<string>(); private Dictionary<string, string> _storedImages = new Dictionary<string, string>(); private Dictionary<string, string> _storedAvatars = new Dictionary<string, string>(); private void OnServerInitialized() { ImageManager?.Call("AddImages", _storeImages.ToList(), FileStorage.Type.jpg, "GUIShop"); } private void OnPluginLoaded(Plugin name) { if (ImageManager != null && name.Name == ImageManager.Name) { Puts("ImageManager has been detected and Images are now being Processed"); ImageManager?.Call("AddImages", _storeImages.ToList(), FileStorage.Type.jpg, "GUIShop"); // plugin name "GUIShop" } } // your special made hook to listen for on your image request. private void ImageManagerRustID(Dictionary<string, string> received) { // you can filter which ones you want when you get the list back. example. foreach (var image in received) { if (_storeImages.Contains(image.Key)) { _storedImages[image.Key] = image.Value; _storeImages.Remove(image.Key); if (_storeImages.Count == 0) break; } } } // called when new avatars get cached so you can update as needed. void ImageManagerPlayerConnected(Dictionary<string, string> avatars) => _storedAvatars = avatars; // use for your gui example CuiRawImageComponent rawImage = new CuiRawImageComponent(); rawImage.Png = _storedAvatars[id]; //or call each time if you prefer.. (string)ImageManager?.Call("GetAvatar", id); // or image rawImage.Png = _storedImages[key] container.Add(new CuiElement { Parent = parent, Name = name, Components = { rawImage, new CuiRectTransformComponent { AnchorMin = anchorMin, AnchorMax = anchorMax } } }); API Hooks: // Avatars // Called when the plugin has initially loaded / compiled & finished/ready for use. void ImageManagerLoadedAvatars(Dictionary<string, string> avatars) // Triggered when new players connect with no stored pic yet. ( Is only called once finished storing in the event of multiple or mass player connections their Queued ) void ImageManagerPlayerConnected(Dictionary<string, string> avatars) // Triggered by 3rd party plugins doing stuff + PlayerConnected. void ImageManagerAdded(Dictionary<string, string> avatars) // called when avatars have been removed & returns the new full avatar list available. void ImageManagerRemoved(Dictionary<string, string> avatars) // Images // Called when the plugin has initially loaded / compiled & finished/ready for use. void ImageManagerLoadedImages(Dictionary<string, string> images) // Triggered by 3rd party plugins doing stuff. void ImageManagerAdded(Dictionary<string, string> images) // called when avatars have been removed & returns the new full avatar list available. void ImageManagerRemoved(Dictionary<string, string> images) API Calls: These are API CALLS which means you call them.. ImageManager?.Call("AddImages", _pluginImages, FileStorage.Type.jpg, "GUIShop"); // Example // new hook use this to specify individual image storage types. AddImages(Dictionary<string, FileStorage.Type> images, string plugin) // hook changed. AddImages(List<string> images, FileStorage.Type format, string plugin) // hook changed. Use this to specify 1 storage type for all images to save as. AddImage(string image, FileStorage.Type format, string plugin) GetImage(string image) // returns string GetImages(List<string> images) // returns Dictionary<string, string> RemoveImage(string image) RemoveImages(List<string> images) AddAvatar(ulong player, string url, string plugin) // url is optional if you want to provide custom image for player. AddAvatar(string player, string url, string plugin) // url is optional if you want to provide custom image for player. AddAvatars(Dictionary<string, string> players, string plugin) // url is optional if you want to provide custom image for player. GetAvatar(string player) // returns string GetAvatars(List<string> players) // returns Dictionary<string, string> RemoveAvatar(string player) RemoveAvatars(List<string> players) TODO: Add MYSQL Support to have 1 database available instead of each server instance. Add Discord support for Error Responses.Free -
Version 1.4.2
20 downloads
The Z-Billboards plugin gives you the ability to make billboards in no-time! With the size of these eye catchers, people WILL see your server info, vending ads or king size memes. Z-Billboards The Z-Billboards plugin gives you the ability to make billboards of any size you want! After creation, it is possible to add any image from the internet like you are used to with other sign mods. Multiple images are possible too. What is the first 10 x 10 sized 5 frame video you paste on your base? With the size of these eye-catchers, people WILL see your server info, vending ads, or king-size memes. No need to edit the image yourself: When pasting an image to a billboard, it will be resized to fit your billboard perfectly. The process of splitting the image into the right amount of pieces is also done automatically. It is really as simple as pasting a normal image on a single sign. Added in 1.4.0: Pass an optional brightness parameter to your paste command to set the brightness of your images: /billboard sil <url> 0.0 – 1.0 (0 = darkest, 1 = lightest) Product features Automatic placement of (neon) signs so they are always aligned No photo editing required, insert the image URL and resizing, splitting and pasting is all automatically done for you 3 tiers + admin tier for limiting the size of billboards Limit the total amount of billboards per tier Animated signs possible, pasting an image will use the next free sign Toggle power & Adjust animation speed with 1 command In theory, no limits regarding total size Adjust brightness of the image in game Usage Always start with the top left Large Animated Neon Sign or an XL Picture Frame. After that, look at the sign and create the billboard: /billboard create <horizontal signs> <vertical signs> To paste an image, look at your billboard and use: /billboard sil <image url> The plugin will now download your image, stretch it to make it fit the full billboard, cut it in equal parts (the amount of neon signs) and paste every part onto the right neon sign. Synchronize animated billboards When pasting more than one image on a billboard made of neon signs, it will start to animate. Because not all images are pasted at the same time, it is possible the neon signs are not synchronized with each other. To solve this problem, wait for the pasting to be done and toggle your billboard’s power or speed. Both commands will ‘restart’ your billboard. All neon signs will start at the first image again. Brightness Most images on neon signs look better when they are made a little darker. Since version 1.4.0 there is an optional brightness value you can add to the paste command. The image is pasted at it’s brightest (1.0 or 100%) by default. Lower the value to make an image darker, 0.5 means the image will be pasted at 50% brightness. To use this functionality, simply add the brightness after the URL. Commands /billboard create 2 2 /billboard sil <image url> /billboard sil <image url> [brightness 0.0 - 1.0] /billboard toggle --> toggle all power on/off (this also syncs animated signs) /billboard destroy --> removes your billboard /billboard speed 1.5 --> changes speed of animated signs /billboard info --> get billboard ID and location Console commands billboard.toggle <billboard ID> --> power on/off billboard (needs permission zbillboards.console) Configuration The mod comes with 4 different permissions to determine the maximum size of a billboard per player (group). It also has some other settings to tweak performance: { "Maximum amount of signs in total (width x height) Tier 1": 6, "Maximum amount of billboards (any size, 0 = unlimited) Tier 1": 1, "Maximum amount of signs in total (width x height) Tier 2": 12, "Maximum amount of billboards (any size, 0 = unlimited) Tier 2": 3, "Maximum amount of signs in total (width x height) Tier 3": 16, "Maximum amount of billboards (any size, 0 = unlimited) Tier 3": 5, "Maximum amount of signs in total (width x height) Admin": 150, "Width and height of each neon sign image in pixels": 150, --> higher has better quality but uses more performance "Lock signs to owner after creating billboard": true, "Give back a Neon Sign when a billboard is removed with the destroy command": true, "Seconds between pasting images": 0.25 --> pasting too many image parts too fast will product lag, "Destroy billboard when any of it's signs gets removed, picked up or destroyed": true --> this prevents players from duplicating and selling their signs on the black market } Above (default) settings would mean a player with tier 1 can place a maximum of 1 billboard, containing 6 or less signs. A tier 3 player can place 5 billboards, each made of maximal 16 signs. Permissions zbillboards.admin zbillboards.console --> to use console commands zbillboards.tier1 zbillboards.tier2 zbillboards.tier3 Performance I managed to create billboards as big as 12 x 12 and they perform very well. Do keep in mind that the process of downloading, resizing and splitting the images is very heavy for your server. Billboards this size WILL produce lag and I recommend to let only admins have the ability to make them this big. Since version 1.3.0, normal XL Picture Frames are supported. These signs do a lot better in terms of performance! Support If you have any problems, suggestions or questions, then please let me know! The quickest way to contact me is on Discord (josh.z) or join my Discord server to meet and discuss with other victims of my plugins! https://discord.gg/7ApTVphM7f$25.00 -
Version 1.0.6
217 downloads
Admin and player UI for saving/recalling/deleting sign drawings. Gives players a 25 capacity image library so they can save, and restore, their artwork. Saved images exist even after the signs they're on are destroyed. Multi-layer support for animated signs allows save from and restore to each layer separately. Admin can view a 25 image history for any sign, with the SteamID of the painter shown. Clicking a SteamID shows a 25 image history for that player. UI delete allows for very easy moderation of unwanted images. Permissions SignManager.admin – Allows use of /sma command. SignManager.autosave – Allows auto-saving of paintings upon completion. SignManager.manualsave – Allows manual saving of paintings in UI menu. Chat commands Players. /sm – Opens SignManager UI. Player must be close to a sign Admin. /sma – Opens admin menu for closest sign. /sma <steamID> – Opens admin menu for closest sign /sma export – Exports all images/library data to file. These are auto imported on next server boot. Console commands sma export -Exports all images/library data to file. These are auto imported on next server boot. Configuration ButtonColour : “0.7 0.32 0.17 1” CommandAlias = "SignManager"; AdminCommandAlias = "SignManagerAdmin"; Note : SignManager uses Rust storage and, therefore, saved images will be wiped when the server is wiped. To avoid this, use the the `/sma export` chat command or `sma export` console command before shutdown and wipe.$10.00 -
Version 1.0.3
209 downloads
Your players will be able to publish images at any time on your discord server using the polaroid of the game and thus its location the name of the server on which the player will play. Plugin language : EN , FR Image format for sending: 854x480 (limited due to rust) Type of format for sending: .png Contents : SendPhotoDiscord.cs SteamAvatar.php ( create your own steam avatar download server 'This file is not required for operation plugin!' ) Coupons ( 26-08-2022 / 30-09-2022 ) : ( Grocery Store + | 35% ) | ( Gas Power Station | 40% ) Commands : /photo ( Spawn polaroid ) Permissions oxide : oxide.grant group default SendPhotoDiscord.use oxide.grant group vip SendPhotoDiscord.vip Permissions carbon: carbon.grant group default SendPhotoDiscord.use carbon.grant group vip SendPhotoDiscord.vip Install : rust\oxide\plugins\SendPhotoDiscord.cs Config : rust\oxide\config\SendPhotoDiscord.json { "List Channel Discord (webHooks URL) Max (8) !": { "1": { "Url webHooks": "follow the tutorial", "Name": "Channel 1" }, "2": { "Url webHooks": "", "Name": "Channel 2" }, "3": { "Url webHooks": "", "Name": "Channel 3" } }, "Url avatar ( https://exemple.com/?id={SteamId} )": "", "Enable location": true, "Enable server name": true, "Enable map name": true, "Enable server ip": true, "Enable comments": true, "The minimum limit of letter to comment": 3, "Photo limit per player": 3, "How long should the player wait": 600, "Photo limit per VIP players": 1, "How long should the VIP player wait": 10, "Save photos to inventory": false, "Block instant camera in Recycler": true, "Allow spawn command in chat": true, "Command spawn": "photo", "The text ( Localization )": " > :triangular_flag_on_post: Location : **{PositionPlayerCordinat}** \n", "The text ( server name )": " > :mega: Server : **{NameServer}** \n", "The text ( map name )": " > :map: Map : **{NameMap}** \n", "The text ( server ip )": " > :desktop: Ip : **{IpServer}**:**{PortServer}** \n", "The text ( comment )": "\n {CommentairePhoto} " } Tutorial webHooks : restart the plugin for any modification of the SendPhotoDiscord.json file oxide.reload SendPhotoDiscord$9.99