Applied-Energistics-2-tiler.../src/main/java/appeng/services/version/ModVersionFetcher.java
yueh 02ac8cf220 Refactored the logging
Using LogManager instead of FMLRelaunchLog to access the logger instance.
Added logging of the name of failed exports instead of exception.
Improved crafting log to include issuer including their location and the
requested item.
Removed superfluous FMLRelaunchLog instance.
Removed superfluous parameters for PlayerData constructor.
2016-01-01 02:55:36 +01:00

76 lines
2.1 KiB
Java

/*
* This file is part of Applied Energistics 2.
* Copyright (c) 2013 - 2015, AlgorithmX2, All rights reserved.
*
* Applied Energistics 2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Applied Energistics 2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.services.version;
import javax.annotation.Nonnull;
import appeng.core.AELog;
import appeng.services.version.exceptions.VersionCheckerException;
/**
* Wrapper for {@link VersionParser} to check if the check is happening in developer environment or in a pull request.
*
* In that case ignore the check.
*/
public final class ModVersionFetcher implements VersionFetcher
{
private static final Version EXCEPTIONAL_VERSION = new MissingVersion();
@Nonnull
private final String rawModVersion;
@Nonnull
private final VersionParser parser;
public ModVersionFetcher( @Nonnull final String rawModVersion, @Nonnull final VersionParser parser )
{
this.rawModVersion = rawModVersion;
this.parser = parser;
}
/**
* Parses only, if not checked in developer environment or in a pull request
*
* @return {@link DoNotCheckVersion} if in developer environment or pull request, {@link MissingVersion} in case of
* a parser exception or else the parsed {@link Version}.
*/
@Override
public Version get()
{
if( this.rawModVersion.equals( "@version@" ) || this.rawModVersion.contains( "pr" ) )
{
return new DoNotCheckVersion();
}
try
{
final Version version = this.parser.parse( this.rawModVersion );
return version;
}
catch( final VersionCheckerException e )
{
AELog.debug( e );
return EXCEPTIONAL_VERSION;
}
}
}