Pluginname and version

Discussion in 'BukkitDev Information and Feedback' started by xcanner, Nov 16, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    xcanner

    Which kind of checks do the staff do to a plugin before it is "accepted"?

    According to http://wiki.bukkit.org/Plugin_YAML the rules for pluginname are clear.

    However, playing with the extended query on my server gives following result (PHP vardump):
    Code:
    array(11) { ["HostName"]=> string(29) "Minecraft - Bukkit 1.3.2-R3.0" ["GameType"]=> string(3) "SMP" ["Version"]=> string(5) "1.3.2" ["Plugins"]=> array(42) { [0]=> string(24) "MagicCarpet 2.2.3 (LITE)" [1]=> string(17) "InfoButton 2.1-R1" [2]=> string(18) "Orebfuscator 1.6.3" [3]=> string(34) "GroupManager 2.0 (2.9.4) (Phoenix)" [4]=> string(15) "WorldEdit 5.4.3" [5]=> string(16) "EntityList 1.2.1" [6]=> string(17) "OnlineUsers 1.6.1" [7]=> string(23) "LogBlockQuestioner 0.02" [8]=> string(17) "Vault 1.2.19-b248" [9]=> string(24) "Multiverse-Core 2.5-b591" [10]=> string(15) "CombatTag 5.0.2" [11]=> string(13) "LogBlock 1.60" [12]=> string(16) "WorldGuard 5.5.4" [13]=> string(17) "InfinitePlots 0.7" [14]=> string(20) "AntiBuild 1.0-julle1" [15]=> string(15) "BookManager 0.3" [16]=> string(17) "Permissions 3.1.6" [17]=> string(16) "NoSpawnEggs2 2.1" [18]=> string(19) "InfoForNewUsers 1.2" [19]=> string(15) "SilentDeath 2.0" [20]=> string(16) "BKCommonLib 1.33" [21]=> string(12) "Votifier 1.9" [22]=> string(20) "InfiniteClaims 2.1.0" [23]=> string(16) "WeatherMan 0.4.5" [24]=> string(24) "CleanroomGenerator 1.0.0" [25]=> string(16) "Essentials 2.9.4" [26]=> string(15) "LagMeter 1.10.0" [27]=> string(21) "EssentialsSpawn 2.9.4" [28]=> string(27) "Multiverse-Portals 2.5-b608" [29]=> string(21) "EssentialsGeoIP 2.9.4" [30]=> string(33) "Multiverse-NetherPortals 2.5-b584" [31]=> string(20) "WebAuctionPlus 1.1.7" [32]=> string(47) "LWC 4.3.0 (b736-git-1b1150b1) (August 08, 2012)" [33]=> string(16) "dynmap 0.90-1347" [34]=> string(32) "VotifierScripts 1.1-SNAPSHOT-b28" [35]=> string(18) "Train Carts 1.71.8" [36]=> string(14) "ChestShop 3.46" [37]=> string(20) "EssentialsChat 2.9.4" [38]=> string(17) "WorldBorder 1.5.4" [39]=> string(29) "Multiverse-Adventure 2.5-b591" [40]=> string(31) "Multiverse-Inventories 2.5-b222" [41]=> string(18) "AntiCheat 1.3.8-U4" } ["Map"]=> string(5) "world" ["Players"]=> int(11) ["MaxPlayers"]=> int(100) ["HostPort"]=> int(25565) ["HostIp"]=> string(9) "127.0.0.1" ["RawPlugins"]=> string(967) "CraftBukkit on Bukkit 1.3.2-R3.0: MagicCarpet 2.2.3 (LITE); InfoButton 2.1-R1; Orebfuscator 1.6.3; GroupManager 2.0 (2.9.4) (Phoenix); WorldEdit 5.4.3; EntityList 1.2.1; OnlineUsers 1.6.1; LogBlockQuestioner 0.02; Vault 1.2.19-b248; Multiverse-Core 2.5-b591; CombatTag 5.0.2; LogBlock 1.60; WorldGuard 5.5.4; InfinitePlots 0.7; AntiBuild 1.0-julle1; BookManager 0.3; Permissions 3.1.6; NoSpawnEggs2 2.1; InfoForNewUsers 1.2; SilentDeath 2.0; BKCommonLib 1.33; Votifier 1.9; InfiniteClaims 2.1.0; WeatherMan 0.4.5; CleanroomGenerator 1.0.0; Essentials 2.9.4; LagMeter 1.10.0; EssentialsSpawn 2.9.4; Multiverse-Portals 2.5-b608; EssentialsGeoIP 2.9.4; Multiverse-NetherPortals 2.5-b584; WebAuctionPlus 1.1.7; LWC 4.3.0 (b736-git-1b1150b1) (August 08, 2012); dynmap 0.90-1347; VotifierScripts 1.1-SNAPSHOT-b28; Train Carts 1.71.8; ChestShop 3.46; EssentialsChat 2.9.4; WorldBorder 1.5.4; Multiverse-Adventure 2.5-b591; Multiverse-Inventories 2.5-b222; AntiCheat 1.3.8-U4" ["Software"]=> string(32) "CraftBukkit on Bukkit 1.3.2-R3.0" }
    Please note "Train Carts 1.71.8", questions are:

    Is this information coming from plugin.yml?
    Is plugin.yml not checked (eg. automatically)?
    If plugin.yml is not checked, will it be in the future?

    Edit:
    There is "alot" of plugins out there with spaces in "pluginname"...
     
  2. Offline

    Gravity Retired Staff

    We check the plugin's code, not it's naming scheme, unless it's the one they are using to upload to BukkitDev, nor do we need to check it. If the format defined on your link isn't followed, Bukkit won't run the plugin. Your vardump from php is concatenating the plugin's name and it's version.
     
  3. Offline

    xcanner

    Then check plugin.yml on:
    http://dev.bukkit.org/server-mods/traincarts/files/54-v1-72-1/
    http://dev.bukkit.org/server-mods/emp/files/10-v2-3-5-bukkit/

    I could supply with more links if needed,- the 2 plugins have one or more spaces in "name" in the plugin.yml
     
  4. Offline

    Gravity Retired Staff

  5. Offline

    xcanner

    1. It's not following the standard on http://wiki.bukkit.org/Plugin_YAML
    2. It's pretty hard to know what is the pluginname and what is the the pluginversion in the extended-query if the standard in (1) is not followed...
     
  6. Offline

    Gravity Retired Staff

    I don't think we're going to prosecute people for having a space in their name. Certainly not on BukkitDev; we hardly have the time to do that. If someone wanted it done, it would be done within Bukkit.
    The "extended-query" is a php script that someone wrote. If it's hard to tell what anything is, that has nothing to do with us and is not remotely our problem.
     
  7. Offline

    xcanner

    I understand that the team is working for free, and are doing alot of work.

    Im sorry for calling it "extended query", i meant "enable-query" in server.properties. It does not matter if it is a PHP script or anything else querying the server, the output for a plugin will be "pluginname pluginversion".

    Is it not possible to check plugin.yml automatically if it validates up against http://wiki.bukkit.org/Plugin_YAML (I have no idea on how your procedure is) seems kinda silly to have a standard, and not following it.

    http://dinnerbone.com/blog/2011/10/14/minecraft-19-has-rcon-and-query/

    My bad, spaces in "pluginname" actually is allowed...

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 29, 2016
  8. Offline

    julemand101

  9. Offline

    lol768 Retired Staff

    It's not impossible, just parse till you hit a character that's a number. That said the query could replace all spaces in plugin names with underscores
     
  10. Offline

    xcanner

    And if there is no numbers in the version?
     
  11. Offline

    julemand101

    Please read the documentation for the version string:
    http://wiki.bukkit.org/Plugin_YAML

    There are no rules for the version string so you can use spaces, characters, numbers and special characters. And yes there are plugins without numbers in the version string. And yes it is not a error in the documentation. I have read the source code in bukkit for parsing the plugin.yml file and there are no check at all.
     
  12. Offline

    lol768 Retired Staff

    In 99% of cases, the version contains a number. I've never seen it not.
     
  13. Offline

    xcanner


    There are alot of plugins which contains "dev <number>", "beta <number>" or "<text> <number>". If using your method the "dev", "beta" or "<text>" will be a part of the pluginname, which is very wrong.

    How will you determine what is the pluginname and what is the version in following strings:

    "MyPlugin Dev 1.0"
    "My Plugin Beta 1.0"
     
  14. Offline

    lol768 Retired Staff

    Submit a PR to CraftBukkit which wraps the version number in quotes or something.
     
  15. Offline

    julemand101

    lol768:
    You can't make a solution where you wraps the version number because right now it is allowed to use ALL types of characters as version string (also described in my bug report). The solution is either make a lot of plugins incompatible to Bukkit or warp the name of the plugins (which has some rules right now (but still allow spaces)).

    But the wrap solution will still make a lot of inconvenience.
     
Thread Status:
Not open for further replies.

Share This Page