public void onQuery(Player player, ReplicatedPermissionsContainer query)
	{
		if (query != null)
		{
			if (!this.playerModInfo.containsKey(player.getName()))
			{
				this.plugin.getLogger().warning("Received query from unregistered player " + player.getName());
				this.playerModInfo.put(player.getName(), new Hashtable<String, ReplicatedPermissionsContainer>());
			}

			// Log the query, it can be used to get information about a players mods later on, as well
			// as being used in case the "refresh" command is given as a kind of query cache.
			this.playerModInfo.get(player.getName()).put(query.modName, query);
			
			if (query.permissions.size() > 0)
			{
				ConfigurationSection versionSection = getModVersionSection(query.modName, query.modVersion);

				if (versionSection != null)
				{
					versionSection.set("permissions", new ArrayList<String>(query.permissions));
					
					try
					{
						this.data.save(this.dataFile);
					}
					catch (IOException ex) {}
				}
			}
		}
	}